udev power_supply 规则未触发

udev power_supply 规则未触发

我知道这似乎是这里最常见的问题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,因此始终可测量。

相关内容