Qual é a maneira correta do terminal de desligar?

37

Eu estava tentando desligar meu PC através do SSH. Eu executei

sudo shutdown now

O usuário foi desconectado e o Ubuntu começou a desligar, mas congelou na última tela com o logotipo do Ubuntu e os pontos de carregamento. Alguma idéia de onde possa estar o problema?

Além disso, qual é a diferença entre shutdowne halt? Que outros comandos semelhantes existem?

Richard Rodriguez
fonte
Funciona se você executar "sudo shutdown -P now"?
Eliah Kagan 30/10
ou sudo shutdown -h now
corrigido 30/10/11
+1 em questão. Eu apenas tive exatamente esse mesmo problema.
boehj
btw: este (também) funciona a partir de todos os (outros) tty terminais :-)
noz sobre natty

Respostas:

36

Nas páginas MAN:

Encerramento - "o encerramento organiza a desativação segura do sistema. Todos os usuários conectados são notificados de que o sistema está inoperante e, nos últimos cinco minutos do TIME, novos logins são impedidos". O tempo mencionado aqui é um valor especificado pelo usuário que está sendo desligado.

Parada - "Esses programas permitem que um administrador do sistema reinicie, interrompa ou desligue o sistema."

A diferença é que Halt pode ser mais "agressivo" ao desligar do que o próprio Shutdown. Possui parâmetros que podem literalmente forçar o desligamento do sistema sem a consideração de serviços ou programas abertos. Se você executar o halt sem nenhum parâmetro, ele simplesmente executará o comando shutdown. Algo como um pseudônimo. Se você executá-lo, por exemplo, com o parâmetro, --forceele "forçará" o sistema a uma reinicialização muito rápido.

No caso de parada ou desligamento, eles aguardam a conclusão de todos os processos corretamente antes de desligar ou reiniciar o PC. Se um serviço ou aplicativo não fechar ou não fechar corretamente, você verá o que mencionou lá (o logotipo do ubuntu com os pontos).

A maneira correta no terminal para um único usuário ou multiusuário é o desligamento. Mas se o desligamento não estiver funcionando, verifique quais serviços você está executando e qual está causando a lentidão ou o congelamento do desligamento.

Com isso em mente, existem várias maneiras de reiniciar ou desligar o sistema:

Reiniciando - shutdown -r,reboot

Nesse caso, a reinicialização está simplesmente chamando shutdown -r.

Desligando - halt, shutdown, sudo init 0, shutdown -h now,poweroff

Nesse caso, poweroffé o mesmo que chamarshutdown -P

Como você notou, o shutdowncomando pode fazer muitas coisas, aqui está uma pequena lista:

-r  Requests that the system be rebooted after it has been brought down
-h  Requests that the system be either halted or powered off after it has been brought down, with the choice as to which left up to the system
-H  Requests that the system be halted after it has been brought down
-P  Requests that the system be powered off after it has been brought down
-c  Cancels a running shutdown. TIME is not specified with this option, the first argument is MESSAGE
-k  Only send out the warning messages and disable logins, do not actually bring the system down

Como faz o reboot

-f, --force                 force reboot or halt, don't call shutdown(8)
-p, --poweroff              switch off the power when called as halt

Há, no entanto, uma diferença entre o desligamento pelo terminal e o clique na opção Shutdown no Unity. Este último solicitará ao usuário interação com qualquer trabalho não salvo (como libreoffice, inkscape ...). o primeiro simplesmente enviará um sinal para todos os processos solicitando que eles fechem. Nenhuma interação do usuário será necessária; portanto, qualquer trabalho não salvo será excluído.

Luis Alvarado
fonte
2
Então, como o Ubuntu é desligado corretamente ao fazê-lo usando o botão de desligamento na barra superior? Como isso é diferente do comando do terminal? Por que isso funciona e o comando do terminal não? É muito estranho ...
Richard Rodriguez
16
O @RiMMER shutdowndesliga o sistema operacional, mas na verdade não desliga o computador. Você precisa de um argumento extra, como shutdown -P, ou para ligar poweroff. (Eles são o mesmo.) A lista completa de comandos semelhantes é reboot, halt, poweroffe shutdown.
jg-faustus
Para o meu caso, o laptop nunca desliga com o botão de desligamento dentro da unidade ou com o próprio comando.
Luis Alvarado
Como gerá-lo no XMonad? ("M-S-k", spawn "sudo shutdown now -P")não funciona
Abdulsattar Mohammed
'shutdown -P' também funcionaria a partir de tty1 (para também desligar tty7 e desligar a máquina)?
noz sobre elegante
7

O que você precisa fazer é desligar o computador após o desligamento, executando o comando abaixo:

sudo shutdown -P 20

andrew
fonte
11
Por que isso é melhor do que simplesmente shutdown -P? EDIT : Não é capaz de saber quando é o bom momento para desligar?
David Tabernero M.
Como se "de repente" você não tiver mais tanta certeza sobre o desligamento, poderá cancelar o processo de desligamento. Não usar tempo o fará instantaneamente = não há como voltar atrás. Além disso, se você estiver em um servidor com mais pessoas, elas receberão uma mensagem informando que o servidor será encerrado em breve, deixando algum tempo para preparar o logoff.
s1mmel 7/03
2

Um outro comando para o sistema de desligamento é

sudo init 0

O init 0 chama todos os scripts de desligamento e normalmente desliga sua máquina.

Ketan Patel
fonte
3
Isso precisa de um pouco mais de explicação, eu acho.
Don.joey
0

Qual é a maneira correta do terminal de desligar?

shutdown -h now

ou

poweroff
Trevor
fonte