Tenho um PC “media center” que às vezes esqueço de desligar à noite. Se bem me lembro, geralmente acesso remotamente meu PC "media center" e desligo-o, mas na maioria das noites esqueço de fazer isso e o PC funciona a noite toda (e durante o dia seguinte também).
Existe uma maneira de desligar o PC através de uma caixa de diálogo (ou seja "Do you want to shutdown?" [Yes] [No]
)? A razão pela qual quero uma caixa de diálogo é porque às vezes assistimos filmes tarde da noite e não quero desligar arbitrariamente.
Posso fazer um cron job que executa um script à 1h, mas não consigo descobrir como executar poweroff
ou shutdown
como usuário padrão. Qualquer ajuda? Estou executando o Linux Mint 17.3 (Ubuntu 14.04).
Responder1
Existe uma maneira de desligar o PC através de uma caixa de diálogo (ou seja
"Do you want to shutdown?" [Yes] [No]
)?
Acredito que a maneira mais simples de fazer isso é via xmessage
. Algo assim:
#!/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 possam ser usadas por cron
(mais sobre issoaqui). E, claro, se vocêquererecho
para desligar o computador, você terá que descomentar essa linha e, é claro , também poderá remover as instruções. Eu apenas juntei isso rapidamente como uma amostra.
A essência: 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 é 1
, então façanãodesligar. (Editar:) Se nenhum usuário pressionar nenhum botão após timeout
segundos ( 10
neste caso), xmessage
sairá 0
e o computador será desligado.
Quando executado, o script produz esta pequena caixa de diálogo:
Tenho certeza de que isso zenity
é ótimo, mas para uma tarefa simples como essa acho xmessage
que pode ser mais fácil.
Responder2
Muitas perguntas reais em uma pergunta. Faça perguntas separadas na próxima vez. O problema que você descreveu deve ser resolvido com a opção do player de vídeo "evitar a suspensão" ou "desativar o protetor de tela". O VLC tem essa opção em algum lugar nas configurações. No entanto, as pessoas relatam que às vezes não funciona.
Para mostrar caixas de diálogo do script bash, use xdialog
o utilitário. No entanto, não funcionará simplesmente se for executado fora da sessão do usuário, como no crontab. Você precisará desabilitar a segurança do servidor X primeiro.
Para executar o poweroff como usuário padrão, execute-o por meio de systemd
systemctl poweroff
.