Shell-Script
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
如果我使用or參數手動執行腳本,down
它可以完美執行。但是當我斷開電源或重新連接時,什麼也沒有發生。
更改
ENV{POWER_SUPPLY_PRESENT}
為ENV{POWER_SUPPLY_ONLINE}
。
POWER_SUPPLY_PRESENT
在連接/斷開連接時不會改變,因此是要測試的錯誤環境變數。
POWER_SUPPLY_ONLINE
當從交流適配器電源中移除時,它會從 1 變為 0,因此始終可以測量。