udev 没有运行删除事件

And*_*edd 5 udev

我有两个规则,一个用于连接设备,即我的手机,另一个用于断开连接。添加规则运行删除规则没有。这是我的 udev 规则。我简化了但删除事件没有运行。

#RUNS:
KERNEL=="sd?1", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", SYMLINK+="phone", ACTION=="add", RUN+="/usr/bin/touch /tmp/udev.add"
#DOES NOT RUN:
KERNEL=="sd?1", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", SYMLINK+="phone", ACTION=="remove", RUN+="/usr/bin/touch /tmp/udev.remove"
Run Code Online (Sandbox Code Playgroud)

为什么一个会跑而另一个不跑?

aqu*_*erd 6

您需要按照此处所述重构您的删除规则:http : //www.linuxquestions.org/questions/linux-desktop-74/udev-not-doing-remove-rules-841733/

总结链接内容,似乎一旦设备被移除,其某些属性将不再可读,因此您必须监控设备移除并关注转储为udevadm monitor --environment --udev.

此外,在删除期间创建符号链接是完全错误的。

  • 愚蠢的复制和粘贴错误。就是这样。还应该注意的是,过滤是使用`ENV{VAR}==`而不是`ATTRS{VAR}==`对环境变量进行的,上面的命令是您如何获取要过滤的环境变量。谢谢你。 (2认同)