Shell-Script

udev power_supply 規則未觸發

  • September 10, 2015

我知道這似乎是這裡最常被問到的問題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如果我使用or參數手動執行腳本,down它可以完美執行。但是當我斷開電源或重新連接時,什麼也沒有發生。

更改ENV{POWER_SUPPLY_PRESENT}ENV{POWER_SUPPLY_ONLINE}

POWER_SUPPLY_PRESENT在連接/斷開連接時不會改變,因此是要測試的錯誤環境變數。

POWER_SUPPLY_ONLINE當從交流適配器電源中移除時,它會從 1 變為 0,因此始終可以測量。

引用自:https://unix.stackexchange.com/questions/228453