我正在尝试为 USB 驱动器插件编写一个 udev 规则。我想先将其安装到/media
,然后运行脚本/usr/local/bin/script.sh
。当我插入 USB 时,它甚至不会使用此规则安装设备。但是,如果我手动将 RUN 中的部分输入到终端,它会安装并执行脚本。
规则文件说明:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh"
这是在规则的 RUN 部分执行两个命令的正确方法吗?
答案1
这不是执行 2 个命令的正确方法。我也不喜欢你的规则的匹配部分,但在本例中我将保留它。你可以这样做:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/sh -c '/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh'"
或者
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/", RUN+="/usr/local/bin/script.sh"
但是在你的情况下为什么不直接移动mount
脚本内部的命令呢?