udev 규칙을 사용하여 자동으로 최대 절전 모드로 전환

udev 규칙을 사용하여 자동으로 최대 절전 모드로 전환

저는 Debian Jessie와 systemd를 사용하고 있습니다. 과거에는 배터리가 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에만 해당).

관련 정보