JTe*_*TeK 19 linux autorun udev
我正在尝试设置一个脚本以在每次插入 USB 设备时运行。我创建了文件/etc/udev/rules.d/90-local.rules并添加了以下规则:
ACTION=="add", SUBSYSTEM=="usb", KERNEL=="sd*", SYSFS{model}=="Cruzer*", RUN+="sh /home/jesse/Documents/Scripts/cruzer.sh"
Run Code Online (Sandbox Code Playgroud)
问题是当驱动器连接时,什么也没有发生。出于调试目的,该脚本被操纵以使用通知发送发送通知,该通知已安装并在终端上正常工作。
脚本的路径是正确的,因为我在终端中运行了那个确切的命令,没有任何问题。
小智 8
我有同样的问题。这对我有用:
尝试将您的脚本复制到/usr/local/bin
并更改.rules
文件中的目录。
另外,我不知道 SYSFS 是什么,但我更喜欢使用 ATTR 属性。
下面一行是我的.rules
文件的内容:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/backup.sh"
Run Code Online (Sandbox Code Playgroud)
notify-send
需要访问您的 DBus 会话总线,这有两个原因:
没有关于会话的信息。当由 udev 启动时,您的脚本对您的登录位置或是否登录一无所知。使用 X11 的多席位仍然很棘手,但用户切换适用于 X11 和控制台会话。许多人还通过网络使用 SSH、VNC 和 NX。
(DISPLAY=:0
一半的时间会起作用,但这充其量仍然是猜测。)
被 DBus 策略拒绝。即使您的脚本以某种方式找到了您的 X11 会话,它也无法发送通知,因为脚本root
不是您的用户帐户运行的。
归档时间: |
|
查看次数: |
38408 次 |
最近记录: |