Istnieje wiele sposobów jego wdrożenia, ponieważ istnieje wiele różnych schematów zarządzania energią, w zależności od tego, co zainstalowałeś.
Ten prosty działa dla mnie na minimalistycznym Debianie Jessie bez żadnego środowiska graficznego, tylko z małym i szybkim menedżerem okien icewm. (Jest zmniejszany, ponieważ w przeciwnym razie jest po prostu zbyt wolny, i w ten sposób przewyższa GNOME na znacznie lepszym sprzęcie)
W szczególności mam zainstalowanych następujące pakiety:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils,
ale NIE JESTEM z następujących (po ich wyczyszczeniu):
gnome * kde * systemd * uswsusp upower laptop-mode-tools hibernacja policykit-1
Więc po prostu wstawiłem to /etc/cron.d/battery_low_check
(wszystko w jednym wierszu, podzielone dla czytelności):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
Jest szybki, zużywa niewiele zasobów i nie zależy od innych diamonów (jeśli w rzeczywistości zostaną zignorowane, jeśli będą aktywne - zobacz /usr/share/acpi-support/policy-funcs
szczegóły).
Co robi: co 5 minut ( */5
- możesz przejść do każdej minuty, używając tylko tego, *
jeśli potrzebujesz częściej sprawdzać baterię), sonduje stan baterii („ acpi - akumulator ”) i wykonuje polecenie xargs -ri
dopiero wtedy, gdy bateria jest „ Rozładowanie ”(to znaczy, że nie masz połączenia z prądem przemiennym), a stan baterii jest mniejszy niż 10%
(„ int (2 $) <10 ”- możesz go dostosować do swoich potrzeb)
acpi_fakekey 205
domyślnie wyśle KEY_SUSPEND
zdarzenie ACPI (tak jak nacisnąłeś klawisz na laptopie z prośbą o zawieszenie), co zrobi to, co zwykle dla ciebie robi (skonfigurowane w /etc/default/acpi-support
) - dla mnie hibernuje na dysk.
Możesz acpi_fakekey 205
oczywiście użyć innej komendy zamiast : like hibernate
(z pakietu hibernacji) s2disk
lub s2mem
(z pakietu uswsusp), pm-suspend-hybrid
(z pakietu pm-utils) itp.
BTW, numery magicznych klawiszy, takie jak KEY_SUSPEND = 205 powyżej są zdefiniowane w /usr/share/acpi-support/key-constants
(inny interesujący to prawdopodobnie KEY_SLEEP = 142 )
sleepd -b 40
i nic się nie stało po znaku 40%. Też próbowałemsudo sleepd -b 40 -s pm-suspend
i nic się nie dzieje ...