Vamos começar usando ele apenas na maquina 1 para testar, vc precisa de um arquivo de texto na home dela chamado .estado1, começa com ponto para ser oculto e ninguém mexer. Para visualizá-lo basta dar control + H
é neste arquivo que o programa vai ler quanto tempo deve ficar funcionando, e o comando você vai escrever pela maquina “chefe”, então o arquivo deve estar compartilhado com a maquina “chefe” para que você altere o arquivo por ela (seja pelo dropbox, samba, nfs etc) você que sabe.
Temos dois tipos de comandos:
espera = com este comando o script lê mas não marca tempo
O outro comando você coloca em segundos, que significa quantos segundos a maquina vai ficar ligada (você escreve só os números no arquivo compartilhado .estado1)
1800= 30 minutos
3600 = 1 hora
7200= 2 horas
10800= 3 horas
14.00= 4 horas
etc.
Vamos supor você escreve 1800, o programa vai ler, ficar 1800 segundos aguardando (30 minutos) e depois disto ele reinicia e o cliente não vai conseguir passar da tela de login depois do reboot.
Então imagina só, você esta na sua maquina principal com uma pasta tendo todos os arquivos de todas as maquinas, e em todos está escrito “espera”, o cliente vai e compra 1 hora, você abre o arquivo texto correspondente a maquina que o cliente vai usar e escreve 3600, no máximo de 5 segundos o programa vai “pescar” o tempo e dormir pelo tempo que você determinou, depois que o tempo acabar ele vai reiniciar e o cliente não sabendo a senha do login não faz mais nada.
Depois podemos incrementar o programa avisando ao cliente que faltam apenas 5 minutos, fazer o programa calcular em horas ao invés de digitar em segundos, mas se tiver necessidade e depois de testá-lo.
nos testes você pode usar o comando ./script para testar, ou seja, deixa ele na home e com o terminal na home você dá este comando e vai testando, pra depois colocar na inicialização
Abaixo o codigo, coloque ele num arquivo texto programas tipo pluma, gedit etc. (não é libre office),
coloca ele no diretório /etc/init.d,
dá permissão de execução chmod +x /etc/init.d/script
coloca na inicialização bastando indicar o caminho dele no arquivo /etc/rc.local
exemplo: /etc/init.d/script
parece complicado mais depois que fizer vai ver que é tranquilo, codigo:
#!/bin/bash
# Loop infinito
for (( loop=1;loop>0;loop++));do
sleep 5
ESTADO=$(cat $HOME/.estado1) # recebendo o valor da maquina "chefe"
if [ "$ESTADO" != "espera" ];then
sleep $ESTADO # o programa vai dormir até que o tempo se esgote
echo "espera" > $HOME/.estado1 # resetando o valor do estado
reboot
fi
done