Ich arbeite unter Arch Linux und versuche, einen System-Timer als Alternative für den Ruhezustand meines Laptops bei schwachem Akku zu erstellen. Also habe ich diese drei Dateien geschrieben:
/etc/systemd/system/battery.service
[Unit]
Description=Preko skripte preveri stanje baterije in hibernira v kolikor je stanje prenizko
[Service]
Type=oneshot
ExecStart=/home/ziga/Dropbox/workspace/operacijski/archlinux/hibernate/hibernatescript
User=nobody
Group=systemd-journal
/etc/systemd/system/battery.timer
[Unit]
Description=Periodical checking of battery status every two minutes
[Timer]
OnUnitActiveSec=2min
[Install]
WantedBy=timers.target
/ home / ziga / Dropbox / workspace / operacijski / archlinux / hibernate / hibernatescript
#!/bin/sh
/usr/bin/acpi -b | /usr/bin/awk -F'[,:%]' '{print $2, $3}' | (
read -r status capacity
if [ "$status" = Discharging ] && [ "$capacity" -lt 50 ]; then
/usr/bin/systemctl hibernate
fi
)
Und dann, um den Timer zu aktivieren, habe ich ausgeführt:
sudo systemctl enable battery.timer
sudo systemctl start battery.timer
Und irgendwie funktioniert es nicht. Das Skript funktioniert von selbst. Dies bedeutet, dass mein Computer in den Ruhezustand wechselt, wenn ich den folgenden Befehl ausführe.
/home/ziga/Dropbox/workspace/operacijski/archlinux/hibernate/hibernatescript
ADD1:
Nachdem ich den Timer aktiviert und gestartet habe, habe ich einige Überprüfungen durchgeführt und Folgendes bekomme ich:
[ziga@ziga-laptop ~]$ systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
n/a n/a n/a n/a battery.timer battery.serv
Tue 2016-06-28 00:00:00 CEST 42min left Mon 2016-06-27 00:01:54 CEST 23h ago logrotate.timer logrotate.se
Tue 2016-06-28 00:00:00 CEST 42min left Mon 2016-06-27 00:01:54 CEST 23h ago shadow.timer shadow.servi
Tue 2016-06-28 00:00:00 CEST 42min left Mon 2016-06-27 00:01:54 CEST 23h ago updatedb.timer updatedb.ser
Tue 2016-06-28 22:53:58 CEST 23h left Mon 2016-06-27 22:53:58 CEST 23min ago systemd-tmpfiles-clean.timer systemd-tmpf
und
[ziga@ziga-laptop ~]$ systemctl | grep battery
battery.timer loaded active elapsed Periodical checking of battery status every two minutes
ADD2:
Nach dem Anwenden der Lösung von Alexander T startet mein Timer (siehe Code unten), aber das Skript hält meinen Laptop nicht in den Ruhezustand, während es in den Ruhezustand versetzt wird, wenn ich ihn direkt ausführe.
[ziga@ziga-laptop ~]$ systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2016-06-28 19:17:30 CEST 1min 43s left Tue 2016-06-28 19:15:30 CEST 16s ago battery.timer battery.service
ziga
aber es funktioniert nicht.
WantedBy=timers.target
, WantedBy=battery.service
in /etc/systemd/system/battery.timer zu wechseln , aber das macht nichts.
nobody
Benutzer oder als Ziga (ich verstehe/home/ziga
)? Benutzer niemand hat möglicherweise nicht genügend Berechtigungen . Wenn Sie sagen, dass es nicht funktioniert , wie weit kommt es?