udev 규칙을 사용한 자동 최대 절전 모드

udev 규칙을 사용한 자동 최대 절전 모드

저는 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에만 해당).

관련 정보