Sqe*_*tet 2 mount udev sd-card
如何在安装始终连接的驱动器时触发要运行的脚本?
我已经尝试过udev,特别是99-local.rules在/etc/udev/rules.d:
KERNEL=="mmcblk0",ACTION=="mount",RUN+="/path/to/script.sh"
Run Code Online (Sandbox Code Playgroud)
并重新加载规则。但是安装驱动器时脚本不会运行。
请注意,驱动器是SD 卡,因此是mmcblk0块设备名称。它不是USB 驱动器,也没有被热插拔。
事实证明,这并不容易用udev. 经udevadm monitor -p我验证,安装后,我的 SD 卡不会ACTION=="mount"在udev. 我在某处读到该mount事件已被弃用或删除,如果属实会解释它。udev毕竟,应该管理热插拔。
此外,udev-triggered 脚本必须非常快地完成,因为它们udev在运行时会阻塞。不适合大型任务,例如备份。
我通过编写一个使用for的systemd服务文件/etc/systemd/system/来实现我的目标:ExecStart.mount
[Unit]
Description=Script to run when drive mounted at /path/to/Stuff
Requires=path-to-Stuff.mount
After=path-to-Stuff.mount
[Service]
ExecStart=/path/to/script.sh
Type=forking
[Install]
WantedBy=path-to-Stuff.mount
Run Code Online (Sandbox Code Playgroud)
工作正常,但它确实需要指定安装点。