Estou trabalhando no CentOS 7. Escrevi uma regra do udev para iniciar um serviço sempre que um CD for inserido. A regra do udev é a seguinte:
KERNEL=="sr1", SUBSYSTEM=="block", ACTION=="change", ENV{ID_CROM_CD}=="1", ENV{DEVTYPE}=="1", RUN+="/bin/systemctl restart cd-mount@%k.service"
O serviço está configurado da seguinte forma:
[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
Por alguma razão, minha regra do udev é chamada duas vezes. Isso é muito chato porque estou montando o CD-ROM, recebi erros por causa disso. Como posso escrever minha regra para que seja chamada apenas uma vez?
EDIT: mudei minha regra do udev e agora o serviço é reiniciado apenas uma vez. A regra do udev é assim:
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"
Há um problema remanescente. Esta regra detecta que outro CD é inserido somente quando o comando "ejetar" é utilizado. Quando pressiono o botão ejetar, nada acontece. Alguém sabe por quê?