Como desligar o PC apos X tempo de inatividade [RESOLVIDO]

13. Re: Como desligar o PC apos X tempo de inatividade [RESOLVIDO]

vanderlei
vancav

(usa Debian)

Enviado em 12/03/2012 - 15:44h

No Debian, fiz assim é funcionou.

sds
Vanderlei

A função deste Script é desligar o pc caso esteja inativo por um determinado tempo. O script vai ficar verificando o mouse e o teclado se há mudança nos seus valores através do comando: cat /proc/interrupts.

No meu casso estou verificando as interrups do mouse (12) é do teclado (1). O grep –v e para não ler algumas variações, pois sem o comando pegou algumas variações como 01, 11 e 21.

Criar o script no /etc/inativo.sh (pode ser em outro local), torná-lo executável – chmod +x – e depois colocar para iniciar com o sistema.

Comigo o scrip trabalhou melhor quando coloquei o comando no final do arquivo /etc/rc.local (antes do exit 0), sh /etc/inativo.sh. No início coloquei no /etc/init.d e com o rcconf marquei para iniciar com o sistema, ao ativar o script o mesmo inicia o shutdown, porém parava na tela de CRTL+D ou continuar, ou na tela de desligamento e não finalizava.


#!/bin/bash
# Script para desligar o pc caso esteja inativo por um determinado tempo

TIME=30m #Variavel para alterar o tempo de inatividade
LOG="/tmp/inativo.log"
if [ -e $LOG ]; then
rm $LOG
fi

while true
do
DATA=$(date)
## captura variavel do teclado e do mouse ps2
## a opção memos -v e para não considerar a variavel, pois pode ser encontrado pelo comando
TECLADO1=`cat /proc/interrupts | grep 1: | grep -v 01: | grep -v 11:| grep -v 21: | awk '{print $2}'`
MOUSE1=`cat /proc/interrupts | grep 12: | awk '{print $2}'`

## captura variavel do teclado e do mouse ps2 novamente apos o time para comparar
sleep $TIME
TECLADO2=`cat /proc/interrupts | grep 1: | grep -v 01: | grep -v 11: | grep -v 21:| awk '{print $2}'`
MOUSE2=`cat /proc/interrupts | grep 12: | awk '{print $2}'`

# Se os valores forem iguais, entao nesse intervalo (TIME) ele ficou inativo
if [ "$MOUSE1" -eq "$MOUSE2" ] && [ "$TECLADO1" -eq "$TECLADO2" ]; then
/sbin/shutdown -h now
else
echo "***Nao desligar***" >> $LOG
echo "$DATA" >> $LOG
echo "Mouse: $MOUSE1 $MOUSE2" >> $LOG
echo "Teclado: $TECLADO1 $TECLADO2" >> $LOG
echo "" >> $LOG
fi
done


  


14. Re: Como desligar o PC apos X tempo de inatividade [RESOLVIDO]

vanderlei
vancav

(usa Debian)

Enviado em 15/03/2012 - 16:23h

Pessoal, melhorando a dica acima.

O script está OK, porém em algumas maquinas tive problema em usar o rc.local para iniciar. O QUE FIZ ENTÃO:

Só criei o link no runlevel 2 (padrão Debian para modo gráfico) no modo tradicional = ln -s /etc/init.d/inativo.sh /etc/rc2.d/S20inativo.sh - usei 0 S20 para criar logo após o modo gráfico iniciar (precaução).

NÃO usei nenhum programa para inclui-ló no runlevel (tipo rcconf - update-rc.d,etc..., porque, observei que ele incluía os STOP no runlevel 0 1 6, o que causava um conflito e o comando de shutdown erá abortado e não finaliza a maquina, após o init 0 ficava na tela de desligamento e nada.



15. Re: Como desligar o PC apos X tempo de inatividade [RESOLVIDO]

WILLIAN VITOR DO AMOR
willsazon

(usa Ubuntu)

Enviado em 15/03/2012 - 17:15h

opa pessoal,

nossa nem lembrava mais desse topico.

Fiz ele no tempo q trabalhava em uma lan house.

Passamos todas as maquinas para linux (ubuntu) e eu num tinha achado nem uma solução para essa questao.

Achei o sistema de controle de tempo para lan house que era para linux mesmo, acho que era do portal criativa, nao lembro muito bem.

Mas resolveu meu problema.

Mas bom que fica ai para os proximos que precisarem


16. VLWW

Jonathan
Cebola15

(usa Outra)

Enviado em 12/06/2012 - 15:16h

Como o nosso amigo (willsazon) aew em cima falou:
"-Mas bom que fica ai para os proximos que precisarem"
Ajudou mesmo, estava tentando fazer comparações utilizando o comando TOP, mas ele mostra o tempo de inatividade, e se ficar executando o comando top nunca tera inatividade...
Não sabia do arquivo interrupts.
Gostei muito da dica.. Obrigado a todos que ajudaram. :)


17. Pekena duvida

Jonathan
Cebola15

(usa Outra)

Enviado em 12/06/2012 - 15:48h

Aew pessoal..
Gostaria de saber se no arquivo /proc/interrupts, se o local de inatividade do teclado e mouse é sempre o mesmo.
Caso não for.. gostaria de saber como achá-lo.
Vlw


18. Re: Como desligar o PC apos X tempo de inatividade [RESOLVIDO]

Rafael Canalli
canalli

(usa Ubuntu)

Enviado em 12/04/2017 - 11:12h

Bom dia,

Estava com este mesmo problema, tenho algumas estações na empresa que são Linux, e normalmente os usuários não desligam as maquinas, estava pesquisando na net e achei o programa "xprintidle" este pode ser instalado pelo apt-get, ao chamar pelo programa no terminal o mesmo apresenta em milisegundos o tempo de IDLE do usuário, desta forma fica mais facil criar um script que rode algum comando após x tempo sem atividade na maquina.

Att.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts