Is there a way to shutdown the PC via a dialog box (ie.
"Do you want to shutdown?" [Yes] [No])?
Eu acredito que a maneira mais simples de fazer isso é via xmessage . Algo parecido com isto:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
xmessage -timeout 10 "Shutdown computer?" -buttons yes:0,no:1
case $? in
0)
echo "Shutting down..."
#systemctl poweroff
;;
1)
echo "Ok."
;;
*)
echo "Mystic error!"
;;
esac
Eu adicionei as variáveis $PATH e $DISPLAY para que ele possa ser usado por cron (mais sobre isso aqui ). E, é claro, se você quiser que desligue seu computador, você terá que remover o comentário dessa linha, e você pode remover as instruções echo também. Eu apenas juntei isso rapidamente como uma amostra.
A essência disso:
Quando um usuário pressiona yes , o código de retorno é 0 e o computador é desligado.
Se um usuário pressionar no , o código de retorno será 1 , em seguida, desligue o não . (Editar :) Se nenhum usuário pressionar nenhum botão após timeout segundos ( 10 neste caso), xmessage sairá com 0 e o computador será encerrado.
Quando executado, o script produz esta pequena caixa de diálogo:
Tenho certeza de que zenity é ótimo, mas, para uma tarefa simples como essa, acho que xmessage pode ser mais fácil.