fabio
(usa Debian)
Enviado em 18/08/2008 - 15:32h
Tinha nada pra fazer aqui no trabalho, daí saiu isso (de curiosidade). Vê se resolve seu problema:
--- corta aqui INICIO
#!/bin/sh
# Fábio Berbert de Paula <fberbert@gmail.com>
# Verifica tempo ocioso de determinado usuário no X
# Leva em conta o tempo de movimento do mouse
MOUSEDEV=/dev/psaux
MOUSELOG=/tmp/mouse
TEMPOOCIOSO=10 # em segundos
echo 1 > $MOUSELOG # zerar tempo ocioso
# efetuar log do movimento do mouse
sudo cat $MOUSEDEV | tee -a $MOUSELOG 1>/dev/null 2>/dev/null &
# looping infinito - aborta quando executa tempo ocioso
while test 1
do
TIMESTAMP=`date +%s`
LOGSTAT=`stat -t $MOUSELOG 2>/dev/null` read name size blocks unk uid gid dev inode links unk2 unk3 last_access last_mod last_change ioblock << ENDHERE
$(echo $LOGSTAT)
ENDHERE
if [ $last_mod ]
then
TIME_DIFF=`expr $TIMESTAMP - $last_mod`
if [ $TIME_DIFF -gt $TEMPOOCIOSO ]
then
# execucao de tarefa aqui
echo $TEMPOOCIOSO ocioso. Executando...
break
fi
fi
sleep 1
done
# matr processo que loga movimento do mouse
sudo killall cat
--- corta aqui FIM