Hibernação automática com regra do udev

Hibernação automática com regra do udev

Estou usando o Debian Jessie com systemd. No passado, usei um script acpid que deixava meu computador hibernar quando a bateria estava com 5% ou menos.

Na tentativa de substituir isso, criei esta regra do udev (conforme descritoaquino wiki do Arch):

$ 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"

Não está funcionando.

Eu tentei fazer esta regra de teste que funciona:

$ cat /etc/udev/rules.d/98-discharging.rules
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/touch /home/myname/discharging"

Por que a primeira regra não funciona para hibernar meu laptop?

Responder1

O caminho que você usou para systemctl está errado. systemctl está em /bin/, não em /usr/bin/ (este é específico do Debian/Ubuntu).

informação relacionada