Ich verwende Debian Jessie mit systemd. In der Vergangenheit habe ich ein acpid-Skript verwendet, das meinen Computer in den Ruhezustand versetzt, wenn der Akkustand 5 % oder weniger beträgt.
Als Ersatz dafür habe ich diese udev-Regel erstellt (wie beschriebenHierim 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"
Es funktioniert nicht.
Ich habe versucht, diese Testregel zu erstellen, die funktioniert:
$ cat /etc/udev/rules.d/98-discharging.rules
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/touch /home/myname/discharging"
Warum funktioniert die erste Regel zum Ruhezustand meines Laptops nicht?
Antwort1
Der Pfad, den Sie für systemctl verwendet haben, ist falsch. systemctl befindet sich in /bin/, nicht in /usr/bin/ (das ist Debian-/Ubuntu-spezifisch).