Este é o script que fiz para bloquear e desligar meu sistema após 30 minutos.
#!/bin/bash
# Read Password
read -s -p "Password: " password
echo
# shutdown and screensaver Command
echo "$password" | sudo -kS shutdown -h +30 &
gnome-screensaver-command -a &
read -p "Press any key to continue... " -n1 -s
O problema com esse script é que às vezes ele não é encerrado depois de 30 minutos.
É por isso que eu adicionei um comando read
no final - para monitorar o status da seqüência de desligamento, bem como uma janela de progresso. Mas este script mostra apenas o status do minuto inicial
por exemplo:
Broadcast message from root@eka-PC
(unknown) at 10:31 ...
The system is going down for halt in 30 minutes!
não mostra o progresso do desligamento.
EDITADO:
Eu também encontrei este bug no script acima, Se uma senha errada for inserida, o sistema será bloqueado sem qualquer aviso. É possível fornecer uma instrução condicional no comando shutdown. Eu tentei isso
SHUTDOWN=$(echo "$password" | sudo -kS shutdown -h +30 &);
if [[ $SHUTDOWN -eq 0]]
then
gnome-screensaver-command -a &
read -p "Press any key to continue... " -n1 -s
fi
Ele ativa apenas o desligamento, mas não o protetor de tela
SCRIPT DE TRABALHO
Nenhuma solução encontrada para validar o desligamento (echo "$password" | sudo -kS shutdown -h +30 &)
, então tentei uma solução alternativa para esse problema confirmando a senha duas vezes. Este é o script de trabalho
#!/bin/bash
red='tput setaf 1'
green='tput setaf 2'
reset='tput sgr0'
echo "Activate screensaver and shutdowns the system in 30 minutes";
# Read Password
shut()
{
read -s -p "Password: " password1
read -s -p "Confirm Password: " password
echo
# Run Command
if [ "$password1" == "$password" ]
then
echo "$password" | sudo -kS shutdown -h +30 &
gnome-screensaver-command -a &
read -p "'echo $'\n> \n>'' ${green} To cancel shutdown, press C ${reset}'echo $'\n> \n>''" prompt
if [[ $prompt =~ [cC](es)* ]]
then
echo "$password" | sudo -kS shutdown -c
read -p "'echo $'\n> \n>''${red} Shutdown Cancelled ${reset}" -n1 -s
fi
else
echo -e "\n${red} Wrong Password ${reset}, Re enter the password"
shut
fi
}
shut
Adicionou também formatação de texto adicional e código de cancelamento de desligamento ao script acima.
Se você quiser ativar um reprodutor de música (por exemplo, Rhytmbox) também, depois de gnome-screensaver-command -a &
adicionar este código rhythmbox-client --play &
Qualquer sugestão é apreciada