Ich arbeite an CentOS 7. Ich habe eine Udev-Regel geschrieben, um bei jedem Einlegen einer CD einen Dienst zu starten. Die Udev-Regel lautet wie folgt:
KERNEL=="sr1", SUBSYSTEM=="block", ACTION=="change", ENV{ID_CROM_CD}=="1", ENV{DEVTYPE}=="1", RUN+="/bin/systemctl restart cd-mount@%k.service"
Der Dienst ist wie folgt konfiguriert:
[Unit]
Description=Mount CD drive on %i
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/local/bin/cd-mount.sh %i
ExecStop=/usr/local/bin/cd-mount.sh %i
Aus irgendeinem Grund wird meine Udev-Regel zweimal aufgerufen. Das ist ziemlich ärgerlich, da ich die CD-ROM mounte, wodurch ich Fehler bekomme. Wie kann ich meine Regel so schreiben, dass sie nur einmal aufgerufen wird?
EDIT: Ich habe meine udev-Regel geändert und jetzt wird der Dienst nur einmal neu gestartet. Die udev-Regel sieht folgendermaßen aus:
KERNEL=="sr[0-1]", SUBSYSTEM=="block", ACTION=="change", ENV{ID_CROM_CD}=="1", ENV{DEVTYPE}=="disk", ENV{ID_FS_TYPE}=="udf" RUN+="/bin/systemctl restart cd-mount@%k.service"
Es gibt noch ein Problem. Diese Regel erkennt, dass eine andere CD eingelegt wird, nur wenn der Befehl „Auswerfen“ verwendet wird. Wenn ich die Auswurftaste drücke, passiert nichts. Weiß jemand, warum?