我想更多地了解udev规则,所以我实现了一个简单的,但我不起作用:
/etc/udev/rules.d:
KERNEL=="sdb1"
ACTION=="add"
RUN+="~/test/exe.sh"
〜/测试/exe.sh:
#!/bin/bash
echo "USB plugged in" > ~/test/showup.txt
该.sh
文件是可执行的,我通过检查了闪存驱动器的名称lsblk
。它被称为sdb
并有一个sdb1
分区。
我已经查找了不同的教程,但找不到我的错误。以防万一,我使用 Arch Linux。
答案1
udev 规则由 root 执行。
RUN+="~/test/exe.sh" 等于 "/root/test/exe.sh",但 udev 规则似乎无法识别“~”;修改路径即可解决此问题。
将脚本放在“/usr/bin/exe.sh”中可能会更好。