Comando para saber se meu computador será desligado ou não?

0

Estou enviando um comando de reinicialização e desligamento para um computador Free BSD. No entanto, quero verificar se esse computador será desligado ou reinicializado (envio esse comando de um computador de reinicialização e quero ter certeza de que, se meu comando for executado), não quero fazer ping ou etc, existe algum comando aprender isso?

EDIT 1: Eu acho que deveria ser mais claro sobre a minha pergunta. Do meu aplicativo de servidor java, eu envio um desses comandos:

reboot // or any other command to reboot
shutdown -p now

Eu chamo esses comandos em outro programa Java no lado do cliente. Vamos pensar no cenário de reinicialização. Depois que eu mando o comando reboot do lado do servidor, eu quero verificar se o cliente irá reiniciar ou não. Se eu pingar depois de enviar o comando reboot, a máquina cliente Free BSD ainda pode estar ativa. No entanto, pode reiniciar após um tempo mais tarde. Por outro lado, depois que eu mando o comando reboot, algo pode acontecer de forma ruim e as quebras de comunicação e o cliente podem não receber esse comando de reinicialização.

Como posso lidar com esse problema (não quero solução com o lado Java) O Free BSD mantém os sinais de reinicialização ou desligamento em algum lugar (para saber que a máquina será reinicializada ou desligada) e posso consultar que será programado se reinicializar ou desligar imediatamente?

EDIT 2: O servidor envia um desses comandos para o cliente (meu servidor e cliente são codificados em Java) Se eu pingar após o envio, ou seja, o comando shutdown, talvez a máquina seja desligada, mas ainda esteja ativa (ela será desligada talvez após 2 segundos depois). Se eu puder consultar meu cliente, ele recebeu um comando de desligamento (ou reinicialização), mesmo que ele ainda esteja ativo. Eu aceito que tudo OK, ele irá desligar (ou reiniciar) Se eu não puder obter uma resposta para minha consulta para o cliente, significa que ele não está ativo, por isso vou aceitar que ele seja desligado (ou reinicializado). Como posso consultar minha máquina assim?

    
por kamaci 02.08.2012 / 19:08

4 respostas

0

No bsd gratuito, cria um arquivo / var / run / nologin . Eu verifico para entender se um desses sinais é recebido ou não.

    
por 04.08.2012 / 12:34
3

A menos que você esteja em um sistema x86 antigo com um BIOS com bugs ou um sistema não-x86 com algum tipo de firmware com bugs, reboot deve sempre ser reinicializado, supondo que você não tenha problemas com dispositivos pendurados ou com bugs drivers / módulos do kernel.

poweroff é um pouco diferente. Isso requer suporte a ACPI em máquinas x86. No entanto, isso deve ser apenas um problema em hardware x86 antigo. Eu tenho uma placa-mãe dual Pentium-II de 533Mhz que tem um problema em que se ACPI estiver habilitado, apenas 1 CPU é visível. Desabilitar a ACPI permite que ambas as CPUs sejam usadas. No entanto, como a ACPI não está ativada, poweroff não desligará o sistema, mas simplesmente o interromperá. Eu acredito que este sistema seja do meio até o final dos anos 90. Não consigo imaginar que seja um problema em algo relativamente recente.

Em máquinas não-x86, ele provavelmente não desligará o sistema a menos que você tenha suporte específico ao kernel para essa CPU ou placa.

E, claro, se o seu kernel atualmente em execução não tiver suporte a ACPI, seu kernel provavelmente não poderá desligar a máquina.

Então, provavelmente, o melhor que você pode fazer é verificar o suporte à ACPI.

    
por 02.08.2012 / 20:15
0

Além do ping, você poderia rodar um daemon (como sshd - que eu presumo que você esteja fazendo, desde que você está conectando remotamente) na máquina e, se não conseguir conectar, a máquina está (presumivelmente) desligada.

    
por 02.08.2012 / 19:43
0

OK. Eu agora entendo da seguinte forma:

Um aplicativo java em um cliente envia o comando reboot ou shutdown -p now . Então a conexão pode estar quebrada e você se pergunta se o comando ainda está completo.

A resposta para o desligamento é fácil: sim, é concluído. Eu costumava usar o desligamento com o tempo com algumas horas de antecedência, depois desliguei e o servidor foi desligado bem na hora especificada.

O mesmo deve acontecer com shutdown -r , que é reiniciado.

Eu não sei o que acontece com /sbin/reboot . Eu nunca usei isso. Eu suspeito que ele ainda será concluído, mas nunca testei isso.

    
por 02.08.2012 / 21:10

Tags