/var/www/html/configWWW
当任何 USB 插入我的 Raspberry 时,我需要自动运行我的脚本。
UDEV 规则 -/etc/udev/rules.d/myRule.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="****",
ATTR{idProduct}=="****", RUN+="/var/www/html/configWWW"
我的脚本 -/var/www/html/configWWW
#!/bin/bash
file="/media/pi/USB/SymSif.xml"
if [ -f "$file" ]
then
(
echo "it works: $(date)" >> /home/pi/Desktop/test.txt
)
else
(
echo "it does not works: $(date)" >> /home/pi/Desktop/test.txt
)
fi
另一方面,如果我从 bash 运行脚本/var/www/html/configWWW
,它就会起作用!
为什么我的udev
规则不像我的 bash 命令那样工作?
答案1
我曾经遇到过类似的问题,结果脚本被后续的 udev 事件中断了。解决方案是在后台启动它:
ACTION=="add", KERNEL=="sd[a-z][0-9]*", RUN+="/sbin/start-stop-daemon -Sqb -x /path/to/myScript.py"