desligar linux usando java  XML
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Autor Mensagem
Rodrigo Vieira Pinto
JavaEvangelist
[Avatar]

Membro desde: 15/07/2004 11:05:05
Mensagens: 354
Localização: São Paulo
Offline

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!!

"Ser o segundo é ser o primeiro dos perdedores" - Ayrton Senna

"Eu vou dá 10 pau!!" - Aracy de Almeida

Nova dupla sertaneja: Waterfall e Procedural. Pra começar, é sertanejo (ARGH!)

"Bem, dizia eu que a aritmética..." - Prof. Girafales

cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Voce esta rodando o programa como root?
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

1) shutdown está no seu path? Tente com este comando (no meu caso, estou logado como um usuário comum, não root)



Mesmo que você use "/sbin/shutdown", não deve adiantar se você for um usuário comum.



2) 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.

This message was edited 1 time. Last update was at 25/04/2005 11:45:46

[WWW]
Rodrigo Vieira Pinto
JavaEvangelist
[Avatar]

Membro desde: 15/07/2004 11:05:05
Mensagens: 354
Localização: São Paulo
Offline

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.

"Ser o segundo é ser o primeiro dos perdedores" - Ayrton Senna

"Eu vou dá 10 pau!!" - Aracy de Almeida

Nova dupla sertaneja: Waterfall e Procedural. Pra começar, é sertanejo (ARGH!)

"Bem, dizia eu que a aritmética..." - Prof. Girafales

thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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.

Dê uma olhada neste código - dei uma busca no Google com 'sudo getInputStream getOutputStream', não sei se esse código funciona.
http://www.caside.lancs.ac.uk/bt/RunShellCmd.java

This message was edited 1 time. Last update was at 25/04/2005 13:08:25

[WWW]
 
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Ir para:   
Powered by JForum 2.1.8 © JForum Team