我知道这似乎是这里最常见的问题udev
,但我相信我已经正确完成了所有操作,但我的规则仍然从未被触发。该脚本是可执行的,并且从命令行手动执行时可以完美运行。 (乌班图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
当从交流适配器电源移除时,该值从 1 变为 0,因此始终可测量。