udev power_supply ルールがトリガーされませんでした。

udev power_supply ルールがトリガーされませんでした。

これがここで最も一般的な問題であるようですが、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_ONLINEACアダプタの電源から取り外すと、値が1から0に変わるため、常に測定できます。

関連情報