Parar é o mesmo que "shutdown -H" e poweroff o mesmo que "shutdown -P"?

15

Não encontrei uma resposta clara para as diferenças entre as duas opções do comando shutdown.

É haltigual shutdown -He poweroffigual a shutdown -P?

StackExchange for All
fonte

Respostas:

26

É um pouco histórico.

haltfoi usado antes da ACPI (que hoje desligará a energia para você) *. Ele interromperia o sistema e, em seguida, imprimiria uma mensagem com o efeito "está tudo bem em desligar agora". Naquela época, havia interruptores físicos de ligar / desligar, em vez do botão de energia controlado por ACPI dos computadores modernos.

poweroff, naturalmente, interromperá o sistema e desligará a ACPI.

* Hoje em dia halté inteligente o suficiente para ligar automaticamente poweroffse a ACPI estiver ativada. De fato, eles são funcionalmente equivalentes agora.

bahamat
fonte
Interessante: no meu laptop que roda o Gentoo, /sbin/poweroffexiste um link simbólico para /sbin/halt.
phunehehe
Obrigado, bahamat! Estou falando de duas opções para o comando shutdown. O comando é halto mesmo que shutdown -H, e o comando é poweroffo mesmo que shutdown -P? @phunehehe também.
StackExchange for All
@phunehehe: Sim, eu tinha certeza que eles são os mesmos agora, mas não me incomodei em olhar.
bahamat
@ Tim: Sim, esses sinalizadores são os mesmos que chamar o comando. Como eu disse, é praticamente uma diferença histórica.
bahamat
1
Voltar no dia, haltcostumava fazer exatamente isso. Sem desligamento ordenado, basta parar o que a máquina estava fazendo naquele momento. Era comum emitir sync;sync;sync;haltpara garantir que todos os buffers tivessem sido gravados no disco.
Kurtm 27/10/2013
15

Eles não são a mesma coisa, apenas muito intimamente relacionados. Na prática, a menos que você deseja especificar um determinado tempo para desligar ou para forçar uma reinicialização imundo / parar / desligar imediata, isso realmente não importa se você executa shutdown -hou halt... ou shutdown -rvs reboot. As coisas não eram tão convenientes no passado, mas é assim que funciona agora (muitas das oportunidades de ambiguidade ou erro do usuário foram removidas / suavizadas).

/sbin/shutdownfaz várias coisas de "limpeza", como notificar os usuários, bloqueando novos logins enquanto o sistema está sendo desligado. Também pode ser dito para desligar o sistema em um determinado momento ou em XX minutos - avisando os usuários conectados de vez em quando sobre o desligamento iminente.

Ele também altera o nível de execução para 0( halt/ poweroff) ou 6( reboot), que aciona o sistema para interromper os serviços em execução, desmontar discos, etc., em preparação para a parada, desligamento ou reinicialização real.

Quando tudo o que é feito, em seguida, chama /sbin/halt, /sbin/rebootou /sbin/poweroff( reboote poweroffgeralmente são links simbólicos para halt, que interpreta como halt -re halt -Prespectivamente).

Observe, no entanto, que se halt/ reboot/ powerofffor chamado quando o sistema NÃO estiver no nível de execução 0ou 6eles serão chamados shutdownpara executar seu trabalho, a menos que a opção -fou forceseja usada.

(Os detalhes de como os níveis de execução-são interpretados pode variar de distribuição para distribuição, mas 0e 6são utilizados como descrito aqui no Debian e Debian derivados como Ubuntu).

Veja as páginas de manual para shutdowne haltpara mais informações.

Por fim, a distinção entre halte poweroffestado é que halttudo faz para realmente desligar a máquina (em alguns tipos de hardware, isso significa que ele entra em um gerenciador de inicialização ROM ou similar. Na maioria dos hardwares para PC, ele pára), enquanto poweroffconclui a etapa final e desligue. reboot, é claro, chega ao estado de parada e reinicia o computador.

BTW, o padrão é tipicamente um poweroffou outro reboot, mas você pode usar -Hcomo argumento shutdownpara fazê-lo parar. Isso não é muito útil em caixas Linux baseadas em PC (mas é útil em máquinas, como caixas sparc, que possuem um monitor de inicialização de firmware. É possível que possa se tornar útil em máquinas mais novas com uma linha de comando EFI).

cas
fonte
1
Essa é uma resposta altamente centrada no Linux para uma pergunta específica do sistema não operacional. Nem todos os shutdowncomandos têm a noção de níveis de execução. shutdownprincipalmente não invoca halt/ reboot/ poweroff; Ironicamente, é em alguns sistemas não Linux onde essa sabedoria recebida ainda permanece verdadeira hoje. E onde os links simbólicos apontam não é necessariamente halt; não apenas isso, em alguns conjuntos de ferramentas eles não são links simbólicos . Consulte unix.stackexchange.com/a/196471/5132 para obter mais detalhes.
JdeBP