Desligar pc se inativo

1. Desligar pc se inativo

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 01/07/2011 - 11:06h

Bom dia, estou precisando desligar meu pc se ele ficar inativo por um certo tempo, não é hibernar, é desligar mesmo, lembrando que uso ubuntu 10.04 e xfce4 como ambiente gráfico, teria algum script que faça isso ou alguma configuração pelo terminal?
Abraços, Lucas.


  


2. Re: Desligar pc se inativo

vanderlei
vancav

(usa Debian)

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

Não sei se já resolveu, mais vai ai como eu fiz para desligar o pc, no meu caso uso o Debian com gnome.

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


3. Script

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 12/03/2012 - 16:03h

Ou:

### BEGIN INIT INFO
# Provides: Shutdown
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Desliga PC
# Description: Desliga a maquina caso ela fique ociosa
### END INIT INFO

TEMPOLIMITE="600" #tempo em segundo para o desligamento, 600 = 10 minutos

POSOLD="0" #não mecha
TEMPOPARADO="0" #não mecha
SLEEPTIME="3" #intervalo de cada checagem em segundos

while true
do

POSNEW=$(xdotool getmouselocation)

if [ "$POSOLD" = "$POSNEW" ]
then
TEMPOPARADO=$(( $TEMPOPARADO + $SLEEPTIME ))
else
TEMPOPARADO="0"
fi

if [ "$TEMPOPARADO" -gt "$TEMPOLIMITE" ]
then
shutdown -h now
fi

echo "Tempo mouse parado: $TEMPOPARADO"

POSOLD="$POSNEW"
sleep $SLEEPTIME
done



4. Re: Desligar pc se inativo

vanderlei
vancav

(usa Debian)

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

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.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts