¿Cómo saber cuándo una computadora está inactiva?

8

Tengo una computadora que solo se usa parte del tiempo, y me preguntaba si había una manera de apagarla después de un período de inactividad.

Aquí está la parte difícil, si solo estaba pensando en apagarlo solo cuando la GUI está inactiva, entonces creo que sería significativamente más fácil, pero estoy tratando de asegurarme de no cortar a nadie que esté usando activamente el máquina a través de SSH también. La computadora en cuestión es Debian 5.0.

¿Hay alguna forma de detectar si la máquina está inactiva, ya que nadie usa la GUI y nadie usa la máquina a través de SSH? Si una conexión SSH está abierta, pero no se usa activamente, entonces la computadora debe considerar que está inactiva.

Jeff Welling
fuente
¿Debería esto ser movido a stackoverflow quizás?
Jeff Welling
la pregunta no es particularmente de programación, y puede haber respuestas adecuadas que tampoco lo son.
jmtd
Un amigo sugirió DBUS, pero en mis breves 5 minutos de búsqueda en Google no parecía que prestara atención a las conexiones ssh, inactivas o no. Sin embargo, estaría bien si no estuviera informada ... necesito seguir buscando cuando me despierte.
Jeff Welling
1
¿Por qué querrías apagar una computadora Linux de todos modos? :-)
amphetamachine
@amphetamachine Ahorro de energía. Reducción de la producción térmica en una gran sala de clúster. Tenemos dos clústeres de Linux donde trabajo; uno 69 máquinas, otro 43: permitir la administración de energía ha hecho una diferencia apreciable en el calor de las habitaciones (que estaban demasiado calientes) y la factura de electricidad.
jmtd

Respuestas:

2
who -q

Mostrará quién y cuántos usuarios tienen un tty abierto (es decir, en la consola, a través de X, ssh, telent) pero no mostrará a los usuarios que se conectan a través de pop, http, etc.

symcbean
fuente
¿Hay alguna manera de decir cuál fue el último comando que ejecutaron (PID, para verificar si todavía se está ejecutando) y cuándo se ejecutó? ¿Crees que eso podría lograrse con algunos cambios en el indicador de bash?
Jeff Welling
Tendría que ser mucho más específico sobre lo que quiere decir. ¿Qué pasaría si comenzaran un programa setsid antes de cerrar sesión? ¿Qué no puedes obtener de la historia de bash?
symcbean
1

gdm/ gnome-power-managerpuedo detectar esto y suspender la máquina adecuadamente. para GNOME2 Probar

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

y

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

como raíz Es posible que deba reiniciar gdmpara que la configuración surta efecto. (el número es segundos, por lo que 600 son 10 minutos).

bajo GNOME3, hay un par similar de gsettingsclaves (lo anterior falla silenciosamente).

Si no está ejecutando GNOME, puede inspeccionar la fuente de gnome-power-managerpara averiguar cómo establece la inactividad.

jmtd
fuente
1
gdm / gnome-power-managerpuede detectar conexiones ssh inactivas?
Jeff Welling
los inactivos? No. ¿Los activos? Eso creo. Su pregunta sugería que no quería cortar a las personas que usan la máquina a través de ssh activamente . Si no desea que se suspendan incluso con conexiones ssh inactivas, revise su pregunta.
jmtd
En realidad eso suena exactamente como lo que quiero! Lo revisaré, ¡gracias! Una vez que haya verificado que funcionará para mis propósitos, elegiré tu respuesta :)
Jeff Welling
1

Pruebe el comando xprintidle para obtener el tiempo de inactividad en milisegundos.

Coc
fuente