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.
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).
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.
Respostas:
É um pouco histórico.
halt
foi 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 automaticamentepoweroff
se a ACPI estiver ativada. De fato, eles são funcionalmente equivalentes agora.fonte
/sbin/poweroff
existe um link simbólico para/sbin/halt
.shutdown
. O comando éhalt
o mesmo queshutdown -H
, e o comando époweroff
o mesmo queshutdown -P
? @phunehehe também.halt
costumava fazer exatamente isso. Sem desligamento ordenado, basta parar o que a máquina estava fazendo naquele momento. Era comum emitirsync;sync;sync;halt
para garantir que todos os buffers tivessem sido gravados no disco.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 -h
ouhalt
... oushutdown -r
vsreboot
. 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/shutdown
faz 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
) ou6
(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/reboot
ou/sbin/poweroff
(reboot
epoweroff
geralmente são links simbólicos parahalt
, que interpreta comohalt -r
ehalt -P
respectivamente).Observe, no entanto, que se
halt
/reboot
/poweroff
for chamado quando o sistema NÃO estiver no nível de execução0
ou6
eles serão chamadosshutdown
para executar seu trabalho, a menos que a opção-f
ouforce
seja usada.(Os detalhes de como os níveis de execução-são interpretados pode variar de distribuição para distribuição, mas
0
e6
são utilizados como descrito aqui no Debian e Debian derivados como Ubuntu).Veja as páginas de manual para
shutdown
ehalt
para mais informações.Por fim, a distinção entre
halt
epoweroff
estado é quehalt
tudo 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), enquantopoweroff
conclui a etapa final e desligue.reboot
, é claro, chega ao estado de parada e reinicia o computador.BTW, o padrão é tipicamente um
poweroff
ou outroreboot
, mas você pode usar-H
como argumentoshutdown
para 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).fonte
shutdown
comandos têm a noção de níveis de execução.shutdown
principalmente não invocahalt
/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 é necessariamentehalt
; 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.