電源を接続/切断するときに、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'
これを回避する方法を知っていますか?xmonadWMでUbuntu12.04LTSを実行します。