저는 systemd와 함께 Debian Jessie를 사용하고 있습니다. 과거에는 배터리가 5% 이하일 때 컴퓨터를 최대 절전 모드로 전환하는 acpid 스크립트를 사용했습니다.
이를 대체하기 위해 나는 이 udev 규칙을 만들었습니다(설명된 대로).여기아치 위키에서):
$ 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은 /usr/bin/이 아닌 /bin/에 있습니다(Debian/Ubuntu에만 해당).