저는 CentOS 7을 작업하고 있습니다. CD를 넣을 때마다 서비스를 시작하도록 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을 마운트하고 있기 때문에 이것은 매우 짜증나는 일입니다. 그 때문에 오류가 발생했습니다. 한 번만 호출되도록 규칙을 작성하려면 어떻게 해야 합니까?
편집: 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"
남은 문제가 하나 있습니다. 이 규칙은 "eject" 명령을 사용할 때만 다른 CD가 삽입되었음을 감지합니다. 꺼내기 버튼을 눌러도 아무 일도 일어나지 않습니다. 누군가 이유를 알고 있나요?