连接任何 USB 设备时的 udev 规则(Ubuntu 16.04)

连接任何 USB 设备时的 udev 规则(Ubuntu 16.04)

我已经尝试让我的 udev 规则工作了几个小时,但就是不起作用。该规则应该启动一个新终端并运行我的脚本。我尝试过从 udev 规则运行脚本来首先打开一个新终端,但也尝试过直接从 udev 规则运行新终端。两者都不起作用。奇怪的是,使用相同的规则运行 mkdir 确实有效,这让我相信我在其他地方做错了什么。

这是我的 udev 规则:

ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", RUN+="/usr/bin/gnome-terminal -x /home/[user]/Desktop/script.sh"

运行 tail -f /var/log/syslog 显示脚本失败,退出代码为 1,这实际上没有帮助。任何建议都将不胜感激。

答案1

您看不到任何内容,因为udev运行在未设置变量的上下文中,而变量设置对于了解如何联系 X 服务器之$DISPLAY类的操作而言是必需的。您可以在规则中将其添加到命令行,或者编写一个设置然后调用的包装器脚本。gnome-terminal--display=:0DISPLAYgnome-terminal

相关内容