我目前正在开发一个项目,以在插入 USB 设备时运行用 C 编写的程序。这可以通过 udev 规则实现吗?
当我插入我的设备时,我目前已经让它运行一个 Hello World 脚本。但是,它不止一次地运行它。
当前路径:/etc/udev/rules.d/98-local.rules
当前规则:
SUBSYSTEMS=="usb", ACTION=="add", RUN+="/usr/local/bin/USB.sh"
脚本路径:/usr/local/bin/USB.sh
脚本:
#!/bin/bash
echo 'Hello World!' >>"/home/<username>/Desktop/udev.out"
exit
我已经尝试过这样的事情来让可执行文件运行:
#!/bin/bash
usr/games/blackjack
exit
键入 usr/games/blackjack 可以在终端中工作,但是插入 USB 设备时它不起作用。但是,我知道脚本正在运行,因为我已经将它们组合在同一个文件中,并且已经创建了 hello world。
我还尝试从我的用户帐户运行可执行文件,如下所示:
SUBSYSTEMS=="usb", ACTION=='add", RUN+="/bin/su tyler -c '/usr/local/bin/USB.sh'"
但是,这也不起作用。
是设备权限的问题还是无法运行可执行文件?
*注意:我已经广泛阅读了http://reactivated.net/writing_udev_rules.html上的 udev 规则解释。