Существует много способов его реализации, так как в зависимости от того, что вы установили, реализовано много разных схем управления питанием.
Этот простой работает для меня на минималистичном Debian Jessie без какой-либо рабочей среды, только с небольшим и быстрым оконным менеджером icewm. (Он урезан, потому что в противном случае он слишком медленный, и таким образом он превосходит GNOME на гораздо лучшем оборудовании)
В частности, я установил следующие пакеты:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils,
но НЕТ НИКАКОГО из следующих (очистив их):
gnome * kde * systemd * uswsusp upower laptop-mode-tools Hibernate Policykit-1
Так что я просто вставил это /etc/cron.d/battery_low_check
(все в одну строку, разделить для удобства чтения):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
Он быстрый, использует мало ресурсов и не зависит от других демонов (если это так, он будет проигнорирован, если они активны - см. /usr/share/acpi-support/policy-funcs
Подробности).
Что он делает: каждые 5 минут ( */5
- вы можете переключиться на каждую минуту, просто используя, *
если вам нужно, чтобы чаще проверять батарею), он будет опрашивать состояние батареи (« acpi --battery ») и выполнять команду после, xargs -ri
только если батарея заряжена » Разряжается "(то есть вы не подключены к сети переменного тока), и состояние аккумулятора ниже 10%
(" int ($ 2) <10 "- не стесняйтесь настроить его в соответствии с вашими потребностями)
acpi_fakekey 205
по умолчанию отправит KEY_SUSPEND
событие ACPI (как вы нажали клавишу на ноутбуке, запрашивающем приостановку), которое затем будет делать то, что обычно для вас (настроено в /etc/default/acpi-support
) - для меня оно переводится в режим гибернации на диск.
Вместо этого вы можете использовать другую команду acpi_fakekey 205
: например hibernate
(из пакета hibernate) s2disk
или s2mem
(из пакета uswsusp), pm-suspend-hybrid
(из пакета pm-utils) и т. Д.
Кстати, магические номера ключей, такие как KEY_SUSPEND = 205 выше, определены в /usr/share/acpi-support/key-constants
(другой интересный, вероятно, KEY_SLEEP = 142 )
sleepd -b 40
и после 40% отметки ничего не произошло. Я тоже пытался,sudo sleepd -b 40 -s pm-suspend
и ничего не происходит ...