可udev
用于在以下情况下触发操作:始终连接驱动器已安装,还是仅对热插拔有用(如文档所示)?
我想在安装始终连接的 SD 卡时触发脚本。放在里面的这条规则/etc/udev/rules.d
在语法上看起来没问题:
KERNEL=="mmcblk0",ACTION=="mount",RUN+="/path/to/script.sh"
但安装驱动器后该脚本不会运行。
再次,有没有热插拔驱动器是一个SD卡(因此是mmcblk0
设备名称)。
如果udev
不合适,还有什么可能有效?
答案1
答案似乎是“是的,但是”。至少就我而言,该ACTION=="mount"
事件确实不是当安装我已经连接的 SD 卡时会触发,但是ACTION=="change"
确实如此。通过运行,udevadm monitor -p
我能够识别一个属性(ID_FS_LABEL
卷标)以使规则起作用:
ENV{ID_FS_LABEL}="MyVolumeLabel",ACTION=="change",RUN+="/path/to/script.sh"
但事实证明,这udev
对于触发短脚本以外的任何内容并不理想,因为它们在完成时会阻止它。相反,我遵循了建议由 AnkurTank 建议并使用了一项systemd
服务,效果很好。