Hay muchas formas en que podría implementarse, ya que hay muchos esquemas diferentes de administración de energía implementados dependiendo de lo que haya instalado.
Este sencillo funciona para mí en Debian Jessie minimalista sin ningún entorno de escritorio, solo con un pequeño y rápido administrador de ventanas icewm. (Se recorta porque, de lo contrario, es demasiado lento, y de esta manera supera a GNOME en un hardware mucho mejor)
Específicamente, HE instalado los siguientes paquetes:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils
pero NO tengo NINGUNO de los siguientes (después de haberlos purgado):
gnome * kde * systemd * uswsusp upower laptop-mode-tools juego de políticas de hibernación-1
Así que acabo de poner esto /etc/cron.d/battery_low_check
(todo en una línea, dividido para facilitar la lectura):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
Es rápido, utiliza pocos recursos y no depende de otros demonios (de hecho, se ignorará si están activos; consulte /usr/share/acpi-support/policy-funcs
detalles).
Lo que hace: cada 5 minutos ( */5
- puede cambiar a cada minuto con solo usarlo *
si lo necesita para verificar la batería con más frecuencia) sondeará el estado de la batería (" acpi --battery ") y ejecutará el comando xargs -ri
solo si la batería está " Descargando "(es decir, no está conectado a la CA) y el estado de la batería es inferior a 10%
(" int ($ 2) <10 "; siéntase libre de ajustarlo a sus necesidades)
acpi_fakekey 205
enviará por defecto el KEY_SUSPEND
evento ACPI (como presionó una tecla en la computadora portátil solicitando la suspensión), que luego hará lo que generalmente hace por usted (configurado en /etc/default/acpi-support
) - para mí hiberna en el disco.
Podría usar otro comando en lugar de, acpi_fakekey 205
por supuesto: como hibernate
(desde el paquete de hibernación) s2disk
o s2mem
(desde el paquete uswsusp),pm-suspend-hybrid
(del paquete pm-utils), etc.
Por cierto, los números clave mágicos como KEY_SUSPEND = 205 arriba se definen en /usr/share/acpi-support/key-constants
(otro interesante es probablemente KEY_SLEEP = 142 )
sleepd -b 40
y no pasó nada después de la marca del 40%. También lo intentésudo sleepd -b 40 -s pm-suspend
y no pasa nada ...