udev 可以单独在挂载时触发操作吗?

udev 可以单独在挂载时触发操作吗?

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服务,效果很好。

相关内容