为什么我的 udev 规则不起作用?

为什么我的 udev 规则不起作用?

/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"

相关内容