Esistono molti modi in cui può essere implementato, in quanto esistono diversi schemi di gestione del potere implementati a seconda di ciò che è stato installato.
Questo semplice funziona per me su Debian Jessie minimalista senza alcun ambiente desktop, solo con il window manager icewm piccolo e veloce. (Viene ridotto perché è troppo lento altrimenti, e in questo modo supera GNOME su hardware molto migliore)
In particolare, ho installato i seguenti pacchetti:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils
ma ho NESSUNO dei seguenti (dopo averli eliminati):
gnome * kde * systemd * uswsusp upower laptop-mode-tools ibernare policykit-1
Quindi l'ho appena inserito /etc/cron.d/battery_low_check
(tutto in una riga, diviso per leggibilità):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
È rapido, a basso consumo di risorse e non dipende da altri demoni (in realtà, verrà ignorato se sono attivi - vedi /usr/share/acpi-support/policy-funcs
per i dettagli).
Cosa fa: ogni 5 minuti ( */5
- puoi passare a ogni minuto semplicemente usando *
se ne hai bisogno per controllare la batteria più spesso) controllerà lo stato della batteria (" acpi --battery ") ed eseguirà il comando xargs -ri
solo se la batteria è " Scarico "(ovvero, non sei collegato a CA) e lo stato della batteria è inferiore a 10%
(" int ($ 2) <10 "- sentiti libero di sintonizzarti sulle tue esigenze)
acpi_fakekey 205
per impostazione predefinita invierà un KEY_SUSPEND
evento ACPI (come se tu avessi premuto un tasto sul laptop che richiede la sospensione), che poi farà tutto ciò che di solito fa per te (configurato in /etc/default/acpi-support
) - per me va in letargo su disco.
È possibile utilizzare altri comandi invece acpi_fakekey 205
ovviamente: like hibernate
(dal pacchetto hibernate) s2disk
o s2mem
(dal pacchetto uswsusp), pm-suspend-hybrid
(dal pacchetto pm-utils) ecc.
A proposito, i numeri di chiave magica come KEY_SUSPEND = 205 sopra sono definiti in /usr/share/acpi-support/key-constants
(l'altro interessante è probabilmente KEY_SLEEP = 142 )
sleepd -b 40
e non è successo niente dopo il 40%. Ho anche provatosudo sleepd -b 40 -s pm-suspend
e non succede nulla ...