Supondo que você acabou de digitar o comando shutdown -h now(ou algo equivalente), existe algo realista que você pode fazer (se você for rápido o suficiente) para impedir que a máquina seja desligada?
Depois que você invoca shutdown -h now, acredito que você perde o acesso à linha de comando imediatamente da mesma halt -pforma que não há muito o que fazer.
Ken
@Ken: no Ubuntu e Centos conectados via massa, a linha de comando permanece disponível por alguns segundos.
Por que dizer "agora" se você não quer dizer "agora"?
precisa saber é o seguinte
Respostas:
22
Você pode executar shutdown -cpara cancelar um desligamento já em execução.
Não acreditei no começo, mas sim. Mais especificamentectrl+c
Ken
2
@ Ken: shutdown -c e [Ctrl] + [c] são completamente diferentes. shutdown -c é um comando que cancela um desligamento agendado anteriormente (mesmo "agora" está agendado nesse sentido - mas se o cancelamento impedirá que a reinicialização seja um pouco complicado nesse caso). [Ctrl] + [c] fará com que o terminal gere um SIGINT (sinal de interrupção) para o processo que estiver atualmente conectado a ele. Isso pode funcionar em um comando de desligamento em execução, mas isso é bastante incidental à sua pergunta.
Jim Dennis
1
@ Jim Dennis: Estou ciente da diferença entre ctrc+ce shutdown -c. Mas, dada a velocidade da -now opção e não o irmão programado, ctrl+cseria o caminho mais rápido para esse fim. Eu não acreditava que você pudesse parar um desligamento imanente, ainda mais surpreso por poder interrompê-lo, mas aparentemente você pode, mas é uma corrida como você afirmou.
Ken
13
Se você for rápido o suficiente, poderá emitir um init 2(ou qualquer nível de execução que desejar) e isso provavelmente interromperá o desligamento. Qualquer coisa que envolva matar o comando shutdown falhará, pois o comando é executado muito rapidamente
Eu tentei isso com o script abaixo e ainda não é rápido o suficiente para parar o desligamento
#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"
Broadcast message from iain@iain-ubuntu
(/dev/pts/0) at 16:50 ...
The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown
suponha que você enviou uma mensagem de reinicialização ou desligamento a todos os terminais para fins de manutenção, para que o "servidor reinicialize ou desligue para fins de manutenção em 10 minutos"
shutdown -h now
, acredito que você perde o acesso à linha de comando imediatamente da mesmahalt -p
forma que não há muito o que fazer.Respostas:
Você pode executar
shutdown -c
para cancelar um desligamento já em execução.fonte
ctrl+c
ctrc+c
eshutdown -c
. Mas, dada a velocidade da-now
opção e não o irmão programado,ctrl+c
seria o caminho mais rápido para esse fim. Eu não acreditava que você pudesse parar um desligamento imanente, ainda mais surpreso por poder interrompê-lo, mas aparentemente você pode, mas é uma corrida como você afirmou.Se você for rápido o suficiente, poderá emitir um
init 2
(ou qualquer nível de execução que desejar) e isso provavelmente interromperá o desligamento. Qualquer coisa que envolva matar o comando shutdown falhará, pois o comando é executado muito rapidamenteEu tentei isso com o script abaixo e ainda não é rápido o suficiente para parar o desligamento
Onde interativamente
o sistema permanece ativo.
fonte
Na página do manual do FreeBSD:
Então
killall shutdown
funciona no BSD quando há um desligamento programado (por exemploshudown -h +5
).Não acho viável cancelar um desligamento imediato (
shutdown -h now
) no cenário da vida real.fonte
suponha que você enviou uma mensagem de reinicialização ou desligamento a todos os terminais para fins de manutenção, para que o "servidor reinicialize ou desligue para fins de manutenção em 10 minutos"
Este tipo de comando pode cancelar.
basta pressionar Ctrl+C
fonte