Executar Comando Remoto - Reiniciar / desligar pc cliente

Pessoal, gostaria de uma ajuda, tenho 3 pcs em rede doméstica, um pc é o servidor. Fica no comodo de baixo da casa, tenho um notebook e um outro pc no como acima da casa, estes dois ultimos pcs clientes.

Bem, o problema é que quando cai a net, só reiniciando o pc servidor. Ai vem o primeiro problema, é um saco ficar descendo e reiniciando esse pc servidor.
Bom, queria fazer um programinha em java que executasse um comando de qualquer pc cliente para reiniciar o pc servidor.

Alguem sabe como posso fazer isso? O servidor é windows. Se possível gostaria de saber como fazer isso no linux tambem.

O pc cliente usa linux. As vezes ele fica ligado baixando alguma coisa da net. E como no comodo de baixo é um quarto, do meu irmao, e chato acordar ele as 3, 4 da manha pra pedir pra ele desligar o pc servidor, então, vem o segundo problema, como eu desligo remotamente o pc servidor?

Bom, acho que ficou bem claro, eu quero reiniciar e/ou desligar um pc via rede, usando java. No pc cliente eu já fiz um programinha que programa o desligamento do pc, eu agendo a hora que eu quero, eu queria incorporar neste programinha, pra que antes de desligar na hora agendada, ele desligue o servidor e depois desligue o pc cliente.

Se alguem puder me ajudar, agradeço, pode ser passando algum código de exemplo bem simples, ou de outra forma.

Obrigado.

você poderia chamar via classe Runtime o prompt em que o programa está executando…

no windows existe o comando shutdown, acredito que o comando no linux seja o mesmo, e acho que tem a opção “-r” para reboot…

quanto a chamar remotamente você teria que fazer um serverzinho aguardando o comando e pelo comando você fazer essa operação… da para ser um RMI onde você chama direto o metodo que faz isso ou um serverSocket que você manda o comando e la compara a string do comando executado, se for “reboot” por exemplo reincia

detalhe que ao reiniciar seu server, não vai inicar o serverSocket ou RMI sozinho, para isso você precisa coloca seu programa como um serviço do windows por exemplo, eu te indicaria o wrapper para isso…

Complementando… em windows vc pode fazer isso de uma unica maquina desligando os “semelhantes” remotamente, que é exatamente o que vc quer (eu vivo fazendo isso com o pessoal do trampo) ja com linux sem dúvida seria necessario um opção melhor… talvez usando putty, ou realmente um servidorzinho rmi, ou um socket mesmo.

O comando seria mais ou menos: shutdown -m \meuServidor -f -r
(de uma olhada nas opções deste comando)

Uma segunda abordagem (não sei se funcionaria, precisaria testar) seria startar o comando shutdown do windows, rodando no proprio linux (executando via wine o comando correspondente ao windows)
Uma ideia simples e sem codigo java no meio…