为什么我的 udev 规则被调用两次?

为什么我的 udev 规则被调用两次?

我正在使用 CentOS 7。我编写了一个 udev 规则,以便每次插入 CD 时启动服务。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"

还有一个问题。此规则仅在使用“弹出”命令时才检测到插入了另一张 CD。当我按下弹出按钮时,什么也没有发生。有人知道为什么吗?

相关内容