Существует много способов его реализации, так как в зависимости от того, что вы установили, реализовано много разных схем управления питанием.
Этот простой работает для меня на минималистичном 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и ничего не происходит ...