当我连接/断开powersupply时,我正试图让udev运行几个小脚本。我在/etc/udev/rules.d/50-caff.rules中有以下代码:
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_STATUS}=="Charging", RUN+="/home/haukur/rules/off.sh"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_STATUS}=="Discharging", RUN+="/home/haukur/rules/on.sh"
这是on.sh:
#!/bin/sh
caffeine -a
和off.sh:
#!/bin/sh
caffeine -d
无论如何,我写了这些,写了udevadm control --reload-rules
写入bash并且......没有发生任何事情。当我插上或拔掉电源时,咖啡因似乎根本没有激活。
根据/var/log/syslog
(Ubuntu取代/var/log/messages
),udev会识别我拔插头的时间:
Feb 26 08:44:52 (none) udevd[3838]: starting '/home/haukur/rules/off.sh'
但是当它试图运行off.sh(它本身试图运行咖啡因)时,它会返回此错误:
udevd[2719]: '/home/haukur/rules/off.sh'(err) '** (caffeine:3840): WARNING **: Command line `dbus-launch --autolaunch=62907743a139af9b3c86412e00000026 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n'
你知道怎么解决这个问题吗?使用xmonad WM运行Ubuntu 12.04 LTS。
答案 0 :(得分:1)
如果应用程序“caffeine”需要访问您的桌面,您可能需要在调用程序之前导出DISPLAY:
export DISPLAY=:0
您可以简单地将其添加到命令调用:
DISPLAY=:0 caffeine -a