Qual é a diferença entre reboot, init 6 e shutdown -r now?

95

Eu só quero saber a diferença entre

  • reboot
  • init 6
  • shutdown -r now

e qual é o mais seguro e o melhor?

    
por Rahul Patil 09.02.2013 / 13:14

4 respostas

80

Não há diferença neles. Internamente, eles fazem exatamente a mesma coisa:

  • reboot usa o comando shutdown (com a opção -r). O comando shutdown usado para matar todos os processos em execução, desmontar todos os sistemas de arquivos e finalmente informa ao kernel para emitir o comando power ACPI. A fonte pode ser encontrada aqui . Em distribuições antigas, o comando reboot estava forçando os processos a saírem emitindo o sinal SIGKILL (ainda encontrado em fontes, pode ser invocado com a opção -f ), nas distribuições mais recentes o padrão é o mais gracioso e inicial amigável init 1 -> shutdown -r . Isso garante que os daemons se limpem antes do desligamento.

  • init 6 informa ao processo init para encerrar todos os processos / daemons gerados conforme escritos nos arquivos init (na ordem inversa em que foram iniciados) e, por último, invocar o comando shutdown -r now para reinicializar a máquina

Hoje não há muita diferença, pois ambos os comandos fazem exatamente o mesmo, e eles respeitam os scripts de inicialização usados para iniciar serviços / daemons, invocando os scripts de desligamento para eles. Exceto por reboot -f -r now conforme indicado abaixo

Há uma pequena explicação tirada das manpages de porque o reboot -f não é seguro:

  -f, --force
    Force immediate halt, power-off, reboot. Don't contact the init system.

Editar:

Esqueci de mencionar, nas próximas distribuições do RHEL, você deve usar o novo comando systemctl para emitir o desligamento / reinicialização. Conforme indicado nas páginas de manual de reboot e shutdown , elas são "um comando legado disponível apenas para compatibilidade". e o método systemctl será o único seguro.

    
por 11.02.2013 / 02:55
5

Nos unices tradicionais, reboot e shutdown -r now são comandos muito diferentes. Em uso típico, reboot só é seguro para uso no modo de usuário único.

shutdown -r now é o método canônico para desligar através de diferentes * nix's e mais seguro para uso em geral e é funcionalmente equivalente a init 6 .

init (8) reboot (8)

    
por 11.09.2013 / 21:16
5

O desligamento é preferível porque permite que você especifique o motivo para a ação drástica - algo que você sempre deve fazer. A mensagem será gravada no (s) registro (s) para a posteridade. Por exemplo:

shutdown -r now 'Kernel upgrade requires reboot'

Você também pode executar uma reinicialização programada - especificando algo diferente de now como o tempo de reinicialização:

shutdown -r 22:00 'Work around kernel memory leak'

Em seguida, seus usuários receberão lembretes periódicos para sair à medida que o tempo se aproxima - o processo será mais organizado e profissional.

    
por 01.07.2016 / 16:47
4

No FreeBSD existe uma diferença entre reboot e shutdown -r now . Na página reboot man:

Normally, the shutdown(8) utility is used when the system needs to be halted or restarted, giving users advance warning of their impending doom and cleanly terminating specific programs.

    
por 13.04.2015 / 13:15