我正在使用 Debian Jessie 和 systemd。过去,我使用了 acpid 脚本,让我的计算机在电池电量低于 5% 或更低时休眠。
为了尝试替换它,我制定了这个 udev 规则(如所描述的这里在 Arch wiki 中):
$ cat /etc/udev/rules.d/99-lowbat.rules
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="5", RUN+="/usr/bin/systemctl hibernate"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="4", RUN+="/usr/bin/systemctl hibernate"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="3", RUN+="/usr/bin/systemctl hibernate"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="2", RUN+="/usr/bin/systemctl hibernate"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="1", RUN+="/usr/bin/systemctl hibernate"
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="0", RUN+="/usr/bin/systemctl hibernate"
它不起作用。
我尝试制定有效的测试规则:
$ cat /etc/udev/rules.d/98-discharging.rules
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/touch /home/myname/discharging"
为什么第一条规则无法使我的笔记本电脑休眠?
答案1
您用于 systemctl 的路径是错误的。 systemctl 位于 /bin/ 中,而不是 /usr/bin/ 中(这是 Debian/Ubuntu 特定的)。