Eles não são a mesma coisa, apenas intimamente relacionados. Na prática, a menos que você queira especificar uma hora específica para o desligamento ou para forçar uma reinicialização / parada / desativação impura imediata, não importa se você executa shutdown -h ou halt ... ou shutdown -r vs% código%. As coisas não eram muito convenientes no passado, mas é assim que funciona agora (muitas das oportunidades para ambigüidade ou erro do usuário foram removidas / suavizadas).
reboot faz muita coisa de "limpeza", como notificar usuários, bloqueando novos logins enquanto o sistema está sendo desligado. Ele também pode ser avisado para desligar o sistema em um determinado momento ou em XX minutos - alertando os usuários conectados de vez em quando sobre o desligamento iminente.
Ele também altera o nível de execução para /sbin/shutdown ( 0 / halt ) ou poweroff ( 6 ), que aciona o sistema para interromper os serviços em execução, desmontar discos, etc, em preparação para a parada real. desligamento ou reinicialização.
Quando tudo isso é feito, ele chama reboot , /sbin/halt ou /sbin/reboot ( /sbin/poweroff e reboot geralmente são links simbólicos para poweroff , que os interpreta como halt e halt -r respectivamente).
Observe, no entanto, que se halt -P / halt / reboot for chamado quando o sistema NÃO estiver no nível de execução poweroff ou 0 , eles chamarão 6 para fazer seu trabalho, a menos que% A opçãoshutdown ou -f é usada.
(Os detalhes de como os níveis de execução são interpretados podem variar de distribuição para distribuição, mas force e 0 são usados como descrito aqui no Debian e em derivados Debian como o Ubuntu).
Veja as man pages de 6 e shutdown para mais informações.
Finalmente, a distinção entre halt e halt state é que poweroff faz tudo para realmente desligar a máquina (em alguns tipos de hardware isso significa que ele cai em um bootloader ROM ou similar. Na maioria dos PCs hardware apenas pára), enquanto halt conclui o passo final e desliga. poweroff , claro, chega ao estado de parada e reinicia o computador.
BTW, o padrão normalmente é reboot ou poweroff , mas você pode usar reboot como um argumento para -H para fazê-lo parar. Isso não é muito útil em caixas Linux baseadas em PC (mas é útil em máquinas, como sparc boxes, que possuem um monitor de inicialização de firmware. É possível que ele se torne útil em máquinas mais novas com uma linha de comando EFI).