Capturar interrupciones de teclado (bash)

Imagen de tkotd
0 puntos

Hola a todos antes de nada...

Bien, he buscado mi duda en google y he preguntado en otros foros que mas frecuento, pero en ninguno me consiguieron responder, a ver si aquí tengo mas suerte...
Bien hace un año empezo mi gusanillo por el software libre y linux, gracias a un profesor de informatica, y al cabo de unos meses empece a programar pequeños scripts, cosa que me empezó a gustar y continue (no eran gran cosa pero bueno...).

El caso es que en el coleguio nos mandará instalar un pequeño script de bash que según una explicación simple que nos dio el profesor, capturaba el identificador ( o numero ) de la ultima interrupcion del teclado y raton, si en 20 min no cambiaba apagaba el ordenador por no estar utilizandolo. En aquellos tiempos no me importaba la programación de scripts y no guarde el script, y el profesor ya no trabaja en el coleguio y no tengo otra forma de conseguir esa información...

Agradeceria que quien conozca la respuesta tuviera la amabilidad de respondermela y si puede acompañarla con una poca información porque no se mucho de los comandos pero estoi muy interesado en aprender programación.

Atentamente
tkotd

Imagen de Gabriel_M
+1
0
-1

Hola tko.....:

Este puede que te sirva

#!/bin/bash
threshold=20
userid=usuario
inactive=`who -a
grep $userid
cut -c 45-46
sed 's/ //g'`
if [ "$inactive" != "" ]; then
echo "El tiempo de inactividad es: " $inactive
if [ "$inactive" -gt "$threshold" ]; then
echo "El umbral ha sido alcanzado se ejecuta el comando de apagado"
/sbin/shutdown -h now
else
echo "Umbral de acción"
fi
else
echo "El tiempo de inactividad es: 0"
fi
echo "Finalizando"

Mediante who -a se controla el estado del usuario
Cuando esta inactivo mas de "threshold" (20 minutos)
Se da la orden de apagado del ordenador "shutdown -h now"

Saludos.
Gabriel.



Solo doy soporte para Ubuntu: Un sistema operativo superior, moderno, optimizado, seguro, evolutivo y completo.
+1
0
-1
Imagen de tkotd
+1
0
-1

Gracias Gabriel, pero creo que no me exprese bien.
Quería la parte del código de las interrupciones para utilizarlo para otro script. Esa forma me podría servir, pero el problema es que solo muestra la inactividad en minutos, sin en cambio yo quiero saber si alguien esta utilizando el Pc (lo mas pronto posible). Busco una forma de que cuando lance el script en segundo plano si hay una interrupción del teclado y en menos de 'X' sec no introducen una clave en la terminal el ordenador se apague.

Si alguien conoce otra forma para hacer esto que me lo diga por favor...

P.D: Si puede ser que no sea utilizando programas, me gusta hacer mis pequeños scripts para solucionar pequeños problemas.

+1
0
-1