Автоматический переход в спящий режим с помощью правила udev

Автоматический переход в спящий режим с помощью правила udev

Я использую 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).

Связанный контент