Olá pessoal
Como faço para desligar o linux usando java? Para desligar, tentei:
Runtime.getRuntime().exec(“shutdown -h now”);
e tentei também:
Runtime.getRuntime.exec(“sudo shutdown -h now”);
mas não deu certo. Não gera exceção e muito menos erro.
Alguém poderia ajudar?
Lembrando que é uma aplicação standalone (não é um servidor) e usa interface gráfica.
Valeu!!
shutdown está no seu path? Tente com este comando (no meu caso, estou logado como um usuário comum, não root)
thingol@beleriand:~> type shutdown
-bash: type: shutdown: not found
Mesmo que você use “/sbin/shutdown”, não deve adiantar se você for um usuário comum.
thingol@beleriand:~> /sbin/shutdown
shutdown: you must be root to do that!
Se você estiver usando o “sudo”, já que você deve ser um usuário comum, você deve estar ciente que ele solicita a sua senha. Então é mais difícil que simplesmente dar esse comando Runtime.getRuntime().exec(), já que você precisa configurar também a entrada-padrão para poder jogar a senha. Não cheguei a fazer isso, mas basta procurar um pouco.
Então, como root funciona, mas não gostaria de dar permissão de root ao usuário. Quero apenas que o usuário possa desligar o sistema usando um botão do meu aplicativo. Sem precisar acessar o menu do KDE para fazer isso.
Então use o sudo mesmo, mas é necessário procurar um pouco para ver como é que se usam as rotinas ‘getInputStream’ e ‘getOutputStream’ com um processo que requer resposta de senha, como é o caso do sudo. Alguém já deve ter feito isso.