Estoy tratando de ahorrar energía cambiando los escritorios al modo de suspensión cuando están inactivos. Pero sus propietarios también acceden a muchas computadoras de escritorio a través de SSH. Hay una solución de wakeonlan implementada para permitir a los propietarios encender la máquina, pero el problema es que las máquinas volverán a suspenderse automáticamente en 10 minutos, aunque la conexión SSH esté activada.
Lo que intento hacer es incluir las sesiones SSH activas en las definiciones de "actividad".
La pregunta es ¿se puede hacer estableciendo una regla polkit? ¿Se puede hacer colocando un script que se ejecute antes de la suspensión real y lo anule si se encuentran sesiones SSH? Necesito una forma legítima y limpia de hacer esto. Si no es así, entonces las formas hacky también son bienvenidas.
Solución ingenua hacky actual: editar /usr/sbin/pm-suspend
:
#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
echo "SSH session(s) are on. Not suspending."
exit 1
fi
Esto sirve el propósito. Pero no sé cuándo una actualización sobrescribirá el archivo /usr/sbin/pm-suspend
. Tampoco sé cómo funcionará esto con otras implementaciones de suspensión como tuxonice.
[
si escribe if who | grep -qv :0; then
(suponiendo que tenga un POSIX conforme grep
a GNU grep).
grep -cv :0
lugar de pasarwc
?