Qual é a diferença entre os comandos halt
e shutdown
?
fonte
Geralmente, um usa o shutdown
comando . Permite um atraso de tempo e uma mensagem de aviso antes do desligamento ou reinicialização, o que é importante para a administração do sistema de servidores shell multiusuário; pode fornecer aos usuários um aviso prévio do tempo de inatividade.
Como tal, o comando shutdown deve ser usado assim para interromper / desligar o computador imediatamente (pelo menos no Linux e no FreeBSD):
shutdown -h now
Ou, para reiniciá-lo com um aviso personalizado de 30 minutos:
shutdown -r +30 "Planned software upgrades"
Após o atraso, shutdown
informa init
para alterar para o nível de execução 0 (parada) ou 6 (reinicialização). (Observe que, ao omitir -h
ou -r
fazer com que o sistema entre no modo de usuário único (nível de execução 1), que mata a maioria dos processos do sistema, mas na verdade não interrompe o sistema; ele ainda permite que o administrador permaneça logado como root.)
Depois que os processos do sistema são eliminados e os sistemas de arquivos desmontados, o sistema pára / desliga ou reinicia automaticamente. Isso é feito usando o comando halt
oureboot
, que sincroniza as alterações nos discos e executa a parada / desligamento real ou a reinicialização.
No Linux, se halt
ou reboot
for executado quando o sistema ainda não iniciou o processo de desligamento, ele chamará o shutdown
comando automaticamente, em vez de executar diretamente a ação pretendida. No entanto, em sistemas como o FreeBSD , esses comandos primeiro registram a ação wtmp
e, em seguida, executam a interrupção / reinicialização imediatamente , sem primeiro interromper os processos ou desmontar os sistemas de arquivos.
halt
,reboot
eshutdown
programas que invocam o outro. Há um único programa, com muitos analisadores de linha de comando que se direcionam para um caminho de código internamente. Nem existem níveis de execução. O desligamento também não entra no modo de usuário único. De fato, o próprio modo de usuário único foi renomeado. Para detalhes, consulte unix.stackexchange.com/a/196014/5132 .O passado
Na década de 1980, os BSDs tinha
halt
,reboot
eshutdown
. O sistema 5 UNIX tinha um conjunto de ferramentas de compatibilidade com BSD. Mas, nativamente, possuía umshutdown
comando próprio e diferente ; e não tinhahalt
ou nemreboot
um pouco. (Algumas variantes do sistema 5 tinham coisas como as do SCO XENIXhaltsys
.)O BSD
halt
e osreboot
comandos eram de baixo nível, drásticos e imediatos. A maneira atenciosa de desligar um sistema BSD era oshutdown
comando, que fazia todas as coisas que se espera que acontecessem:wall
mensagens para usuários, serviços cortados normalmente, entradas de log gravadas, logins desativados e assim por diante.Enquanto os BSDs estavam em grande parte onde a sabedoria recebida originava esses "
shutdown
executivoshalt
/reboot
", e que estes deveriam ser usados com cuidado; era o mundo do System 5 onde as pessoas aprendiam o hábito contrário quehalt
/reboot
eram apenas atalhos úteis e nada mais:/usr/ucb/halt
do "Pacote de Compatibilidade BSD", não era diferenteshutdown -h
. Os dois acabaram fazendoinit 0
.Leitura adicional
halt
. 11/05/1982. 4.2BSD manual.haltsys
. 03/06/2005. Manual do SCO OpenServer.Hoje
Atualmente, temos uma variedade de possíveis conjuntos de ferramentas de gerenciamento de sistema. Os BSDs ainda possuem seu conjunto de ferramentas, embora eliminado qualquer AT&IS possível nos anos 90. Miquel van Smoorenburg em 1992 (re) escreveu um Linux
init
+rc
e suas ferramentas associadas, que as pessoas agora chamam de "System 5 init", mesmo que não seja realmente o software do UNIX System 5 (e não é apenasinit
) Há também systemd , arrivista , e comer , cada um dos quais tem suas próprias implementações dehalt
,reboot
,fasthalt
,fastboot
, e assim por diante.Os conjuntos de ferramentas também cresceram e mudaram. Agora existe um
poweroff
comando, não presente nos sistemas operacionais dos anos 80, porque as Unidades Centrais de Processamento na maioria das máquinas contemporâneas não tinham como controlar suas fontes de alimentação. Os conjuntos de ferramentas do Linux, em particular, adquiriram os comandos BSD; mas, como as ferramentas de compatibilidade com BSD no UNIX System 5, elas não são exatamente exatas e as coisas foram amplamente achatadas.Esse achatamento nos levou ao ponto em que
halt
e na maior parteshutdown
são os mesmos. Mas os detalhes exatos variam de conjunto de ferramentas para conjunto de ferramentas, e a mecânica de cada conjunto de ferramentas é um pouco diferente.Ele também trouxe-nos para a posição ligeiramente embaraçosa em que este conjunto de comandos se tornou tão enfeitado com opções de compatibilidade que agora permite que as pessoas a dar computadores instruções auto-contraditórias, como
reboot --halt
epoweroff --reboot
, como observei na página de manual para o Noshhalt
,fasthalt
,reboot
,fastboot
, epoweroff
comandos. ☺O conjunto de ferramentas systemd
halt
,reboot
,poweroff
,telinit
, Eshutdown
são todos um programa . Na verdade, é o própriosystemctl
programa do systemd . Ele possui vários analisadores de linha de comando para as várias sintaxes de linha de comando desses comandos, além de suas próprias, mas depois disso, ele se funde amplamente em um caminho de código internamente. Não há diferença entre usarhalt
e suas opções de comando para acionar uma ação e usarshutdown
e suas opções de comando para acionar a mesma ação.O systemd não considera o modo de recuperação (que é o que as pessoas do systemd renomearam para o modo de usuário único ) como um estado desligado do sistema e não pode ser alcançado com nenhum desses comandos. Sem opção
shutdown now
é igual apoweroff
.Leitura adicional:
Os BSDs
Os BSDs mantêm amplamente sua semântica dos anos 80.
halt
e,shutdown
portanto, não são equivalentes em seus conjuntos de ferramentas.halt
ereboot
são um único programa; e ainda são de baixo nível, imediatos e drásticos. Considerando que ,shutdown
epoweroff
também um único programa, faça todas as coisas importantes, como desligamento agendado, gravação dewall
mensagens, ações de log, desativação de logon e assim por diante.Nos conjuntos de ferramentas do BSD,
shutdown
/poweroff
tradicionalmente acabava invocandohalt
/reboot
para aprovar a alteração final do estado do sistema. Os (atualmente atualmente incorretos) receberam a sabedoria de que "shutdown
execshalt
/reboot
" de fato ainda mantém o NetBSD e o OpenBSD. Mas no FreeBSD / TrueOS / DragonFlyBSD, este é o caso apenas se a-o
opção for usada. Nessas BSDs, tanto desses programas normalmente promulgar a mudança final estado do sistema, enviando vários sinais (INT
,USR1
eUSR2
) para processar # 1.init
faz todo o gerenciamento do estado do sistema nesses sistemas.Em todos eles, a opção menos
shutdown now
não é equivalente a qualquer umhalt
,reboot
oupoweroff
. Ele faz a transição para o modo de usuário único BSD , do qual é possível fazer a transição novamente para o modo multiusuário .Leitura adicional:
shutdown
. Manual do Gerente do Sistema . Páginas do Manual NetBSD. 04/11/2011.reboot
,halt
. Páginas do Manual do OpenBSD. 03/09/2016.shutdown
. Páginas do Manual do FreeBSD. 21/09/2016.reboot
,halt
,fastboot
,fasthalt
. Páginas do Manual do FreeBSD. 19/03/2017.shutdown
. Manual do Gerente do Sistema . Páginas do manual do DragonFlyBSD. 29/09/2016.reboot
,halt
,fastboot
,fasthalt
. Manual do Gerente do Sistema . Páginas do manual do DragonFlyBSD. 29/09/2016.O conjunto de ferramentas nosh
No conjunto de ferramentas de gerenciamento de sistema nosh,
halt
,fasthalt
,poweroff
,fastpoweroff
,reboot
, efastboot
são todos um programa. É um calço de compatibilidade com versões anteriores que normalmente se acorrentashutdown
, o oposto da sabedoria recebida. A--force
opção faz com que ela acorrentesystem-control
.Portanto, não há diferença (ausente
--force
) entre ohalt
comando e oshutdown
comando (com a opção equivalente) neste conjunto de ferramentas, pois esse conjunto de comandos "Compatibilidade com o BSD / System 5" é simplesmente uma fina camada de calço por cimashutdown
.Leitura adicional:
shutdown
. páginas de manual do conjunto de ferramentas nosh. Softwares.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
páginas de manual do conjunto de ferramentas nosh. Softwares.O conjunto de ferramentas inicial
Assim como no nosh, no conjunto inicial de ferramentas de gerenciamento de sistemas se aplica o oposto da sabedoria BSD recebida.
halt
,,reboot
epoweroff
são todos um programa que normalmente acorrenta ashutdown
; a menos que a--force
opção seja usada, o que faz com que oreboot()
sistema chame a si próprio.Portanto, novamente, não há diferença (ausente
--force
) entre ohalt
comandoshutdown
ee comando (com a opção equivalente) neste conjunto de ferramentas. Além disso, novamente, sem opçãoshutdown now
(que nenhuma dashalt
,reboot
oupoweroff
pode acabar invocando, pois todas definem as opções) coloca o sistema no modo de usuário único em vez de desligá-lo.Leitura adicional:
shutdown
(8) . Páginas de manual do Ubuntu.reboot
(8),halt
(8),poweroff
(8) . Páginas de manual do Ubuntu.O conjunto de ferramentas Linux System 5
init
+rc
Novamente, neste conjunto de ferramentas, aplica-se o oposto da sabedoria recebida do BSD
halt
e,reboot
simplesmente, encadeia ashutdown
- a menos que o sistema já esteja no poweroff ou interrompa os "níveis de execução", caso em que esses comandos realmente promovem a alteração final do estado do sistema.shutdown
por sua vez, acorrenta ainit
.Então, novamente, não há diferença (a menos que o sistema já esteja amplamente desligado) entre
halt
eshutdown
porque o primeiro apenas invoca o último. E sim, mais uma vez, a opção menosshutdown now
(que nenhumhalt
,reboot
oupoweroff
pode acabar invocando como eles todas as opções definidas) traz o sistema em modo de usuário único , em vez de desligá-lo.fonte
Eu suspeito que isso seja um pouco dependente da versão do UNIX / Linux que você está usando. No Centos (e eu espero que outro Linux moderno) interrompa o desligamento das chamadas (desde que você não esteja no nível de execução 0 ou 6), para que seu sistema seja desligado corretamente. No Solaris 10, a interrupção é mais brutal, apenas libera os caches de disco e desliga o sistema - não é feita nenhuma tentativa de executar nenhum script ou encerrar as instalações smf .
fonte
Para aqueles que usam AWS EC2: na AWS
shutdown
pára uma instância, quandohalt
termina -lo.fonte
No linux, "halt" e "reboot" são aliases do comando shutdown -
shutdown -h
eshutdown -r
respectivamente. O desligamento da palavra de barra geralmente assume -h.fonte
aliases
no sentido de aliases de shell, mas sim,halt
basicamente apenas chamashutdown -h
ereboot
executashutdown -r
. Observe que se você passar a-f
opção (force) parahalt
oureboot
, nãoshutdown
será chamada.sendmail
comando neste momento - Assim como os MTAs, na verdade não importa qual sistema init você usa, porque todos reconhecerão ambosshutdown
ehalt
como tal.sendmail
comando. É como osendmail
comando, mas não da maneira que você pensa.