Warum wird meine Udev-Regel zweimal aufgerufen?

Warum wird meine Udev-Regel zweimal aufgerufen?

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?

verwandte Informationen