udev运行命令未运行

当我通过USB连接手机时,我正在尝试创建一个udev规则来解锁我的电脑。 我无法发现该规则正在运行,所以我尝试了一个更简单的规则。 这是规则(匿名):

KERNEL=="sd?1", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", SYMLINK+="phone", RUN+="touch /home/user/udev.touch" 

我知道该规则正在运行,因为正在创建链接phone -> sdc1创建该文件。 我是否必须启用安全设置才能使文件运行外部程序?

您必须在RUN键中使用完整路径,因为( man udev

如果没有给出绝对路径,程序应该位于/ lib / udev中,否则必须指定绝对路径。 程序名称和参数由空格分隔。 单引号可用于指定带空格的参数。

然而,(bash)脚本本身应该正常运行,即您不需要指定路径。

我和udev有同样的问题。 在添加和删除设备时,我尝试了几乎所有内容来使用脚本。

这是我制作的代码:

 ACTION=="add", KERNEL=="sda1", SUBSYSTEMS=="scsi", ATTRS{model}=="AVV207-0 ", SYMLINK+="Lacie", MODE="0666", RUN+="/bin/sh /usr/bin/udev/lacie-add.sh", OPTIONS="last_rule" ACTION=="remove", KERNEL=="sda1", RUN+="/bin/sh /usr/bin/udev/lacie-del.sh", OPTIONS="last_rule" 

添加OPTIONS="last_rule"参数就可以了。

我也有这个问题,我可以确认从12.04开始你需要为RUN命令指定完整的bash路径和完整的bash脚本才能工作。