Ubuntu Linux Udev规则:是否可以通过udev规则运行用C编写的程序?

我正在开发一个项目,用于在插入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规则解释.

最佳答案 如果用C语言编写程序,则可以使用
libudev.它具有简单的API,可以枚举和监视设备.
Here你会找到很好的教程.

点赞