これがここで最も一般的な問題であるようですが、udev
すべての操作を正しく実行しましたが、まだ私のルールは実行されません。スクリプトは実行可能で、コマンドラインから手動で実行すると完全に実行されます。 (Ubuntu 15.04)
スクリプトは簡単でなければなりません。プラグを抜くと画面が暗くなり、プラグを差し込むと画面が最大明るさに戻ります。ルールは次のとおりです(名前は次のファイルに80-power_supply.rules
あります/etc/udev/rules.d/
。
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="1", RUN+="/usr/local/bin/powermonitor.sh up"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="0", RUN+="/usr/local/bin/powermonitor.sh down"
私のスクリプト:
#!/bin/sh
FILE="/sys/class/backlight/intel_backlight/brightness";
if [ "$1" = "up" ]; then
echo "937" > $FILE;
fi
if [ "$1" = "down" ]; then
echo "92" > $FILE;
fi
up
または、パラメータを使用してスクリプトを手動で実行すると、完全にdown
実行されます。しかし、電源を切り、再接続しても何も起こりません。
答え1
に変更ENV{POWER_SUPPLY_PRESENT}
。ENV{POWER_SUPPLY_ONLINE}
POWER_SUPPLY_PRESENT
接続/接続解除時に変更されていないため、テストする環境変数が正しくありません。
POWER_SUPPLY_ONLINE
ACアダプタの電源から取り外すと、値が1から0に変わるため、常に測定できます。