udev 在删除时与 ENV 变量不匹配

udev 在删除时与 ENV 变量不匹配

和我们成千上万的人一样,我希望在插入“这一个”U盘时运行特殊脚本。但我还希望在拔出它时运行某些东西 - 这真是太麻烦了。我确实在这里读到了有关正确匹配删除的问题:https://www.linuxquestions.org/questions/linux-desktop-74/udev-not-doing-remove-rules-841733/

所以。我的规则是:

ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{model}=="USB2FlashStorage", ATTRS{vendor}=="Ut165   ", ENV{UDISKS_IGNORE}="1", ENV{PX2_KEY}="1", SYMLINK+="key%n", OWNER="root", RUN+="/root/bin/key.sh add"
ACTION=="remove", SUBSYSTEM=="bsg", ENV{PX2_KEY}=="1", RUN+="/root/bin/key.sh del"

添加一个可以完美运行,但删除则完全不行。我尝试使用 with 和w/o SUBSYSTEM (usb, block, scsi),带或不带正确ENV{ID_MODEL}, ID_VENDOR, ID_SERIAL, ID_F..._POOP且无任何效果。在当前阶段,您可以看到我正在创建自己的符号链接 (key%n),并尝试将其与

KERNEL=="key*"

没有运气!您可能还注意到我正在设置自己的变量(PX2_KEY)并尝试通过此变量进行匹配,但是……同样没有运气……我做错了什么……也许我在规则顺序上遗漏了某些内容,但我确实尝试过将规则文件设置为 10-local 以及 99-local - 但没有成功。添加有效,删除无效。之所以设置,是因为这是我看到 udev 显示存在bsg的第一个子系统PX2_KEY

udevadm monitor --udev --environment

删除完成后。我想也许我需要捕捉第一次出现的情况。但也尝试了不同的方法。

答案1

有用。

我不太聪明。问题是,在我想要运行的脚本中,我zenity--display=:0root 身份运行,试图为不同的用户写入消息。

脚本在任何“记录”部分之前结束......

相关内容