O caminho que você usou para systemctl está errado. systemctl está em / bin /, não / usr / bin / (isto é específico do Debian / Ubuntu).
Estou usando o Debian Jessie com o systemd. No passado, usei um script acpid que deixa meu computador hibernar quando a bateria está com 5% ou menos.
Em uma tentativa de fazer um substituto para isso, eu fiz esta regra do udev (como descrito aqui aqui no 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 criar 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?