Por que a execução do “shutdown do sudo agora” não é desligada?

67

Quando eu emito o seguinte:

sudo shutdown now

.. meu servidor Ubuntu 14.04 recém comissionado não desliga. Para com a seguinte mensagem:

* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):

Se eu digitar a senha de root, a máquina simplesmente fica lá no prompt do shell.

    
por Jon Cage 26.01.2015 / 21:18

4 respostas

114

Tradicionalmente, o comando sudo shutdown now leva você ao nível de execução 1 (modo de recuperação); isso acontecerá tanto no init Upstart quanto no SysV. Para obter o que você deseja, ou seja, para desligar o computador corretamente, é necessário fornecer a opção -h para shutdown .

Uma coisa a notar aqui é que halt fechará todos os processos, desligará as CPUs e retornará o controle para um monitor de ROM da placa principal, precisando que o usuário pressione o botão liga / desliga para desligar a fonte de alimentação, Considerando que poweroff depois de desligar os processadores simplesmente desligará a fonte de alimentação, resultando em um desligamento adequado.

A opção -h de shutdown será halt ou poweroff do computador, a decisão será tomada pelo sistema, embora no Ubuntu eu tenha visto que normalmente seria poweroff da máquina. Para ter certeza disso, você pode usar a opção -P com shutdown to poweroff do computador.

Para resumir, aqui estão os comandos disponíveis para poweroff ( não halt ) um computador:

sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0

Os comandos poweroff e halt basicamente invocam shutdown (exceto o poweroff -f ). sudo poweroff e sudo halt -p são exatamente como sudo shutdown -P now . O comando sudo init 0 levará você ao nível de execução 0 ( shutdown ).

Agora, e se você quiser desligar com força, ou seja, não quer esperar que os processos sejam fechados normalmente? Nesse caso, você pode usar:

sudo poweroff -f

Isso não usará shutdown . Em vez disso, ele invocará a chamada de sistema reboot(2) (usada para reinicialização, desligamento e interrupção) para desligar o computador instantaneamente.

    
por heemayl 26.01.2015 / 21:42
15

Tenho certeza de que o comando correto precisa conter a opção "-h" (halt). Tente isto:

sudo shutdown -h now
    
por pille1842 26.01.2015 / 21:22
5

É um legado dos dias em que a máquina física não podia desligar sozinha. Por exemplo, o comando halt sudo halt encerra todos os programas e descarrega quase tudo da RAM, pronto para ser desligado. No entanto, se você executar sudo halt -p , ele fará tudo isso, sinalizará o sistema para desligar ou, no caso do comando shutdown , acredito que você precisa da opção -a , embora eu pessoalmente use halt .

    
por John Cave 27.01.2015 / 01:11
-1

Eu sempre usei o seguinte

sudo shutdown -a now

ou para reiniciar imediatamente após o desligamento

sudo shutdown -r now

Olhando para a opção de ajuda do desligamento, ela não lista - como um comando apropriado, mas eu poderia jurar há muito tempo - que era um aborto ou algo assim. De qualquer forma eu continuei usando isso e ele funcionou todos esses anos, mas parece que o shutdown -h agora é a opção correta.

    
por NPIC 27.01.2015 / 00:16