Я работаю на CentOS 7. Я написал правило udev для запуска службы каждый раз при вставке компакт-диска. Правило udev следующее:
KERNEL=="sr1", SUBSYSTEM=="block", ACTION=="change", ENV{ID_CROM_CD}=="1", ENV{DEVTYPE}=="1", RUN+="/bin/systemctl restart cd-mount@%k.service"
Сервис настроен следующим образом:
[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
По какой-то причине мое правило udev вызывается дважды. Это довольно раздражает, так как я монтирую CD-ROM, из-за этого у меня возникали ошибки. Как мне написать свое правило так, чтобы оно вызывалось только один раз?
EDIT: Я изменил правило udev, и теперь служба перезапускается только один раз. Правило udev выглядит так:
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"
Осталась одна проблема. Это правило определяет, что вставлен другой CD, только когда используется команда "eject". Когда я нажимаю кнопку eject, ничего не происходит. Кто-нибудь знает, почему?