A reinicialização é igual à init 6?

22

A reinicialização é igual à init 6 para o ubuntu?

Estou executando o Ubuntu 12.04 no Amazon EC2. Quando colocado na caixa, posso digitar runlevele recebo:

N 2

Olhando, man rebootvejo que:

Quando chamada com --force ou no nível de execução 0 ou 6, essa ferramenta chama a própria chamada de sistema reboot (2) e reinicializa diretamente o sistema. Caso contrário, isso simplesmente chama a ferramenta shutdown (8) com os argumentos apropriados.

Se eu ler man shutdown 8, vejo:

O encerramento determina que o sistema seja desativado de maneira segura. Todos os usuários conectados são notificados de que o sistema está inoperante e, nos últimos cinco minutos após TIME, novos logins são impedidos.

Meu entendimento básico sobre a diferença entre reboote init 6é:

  • Em outras distros e talvez distros mais antigos reboot, basta desmontar os discos e pressionar o botão liga / desliga sem executar nenhum script de desligamento
  • init 6executará todos os scripts de desligamento /etc/init/rc.*, pois reduz o nível de execução do sistema
  • Nas versões mais recentes do Ubuntu, o rebootcomando sem --forceou -fexecutará o comando shutdown, o que basicamente faria a mesma coisa queinit 6
  • Provavelmente é melhor adquirir o hábito de usar em init 6vez de rebootser mais seguro e funcionaria melhor na distribuição cruzada, mas o comportamento padrão de rebootfoi alterado para tentar evitar erros / dataloss se alguém o usar.

Isso é certo? Se não, o que estou perdendo?

cwd
fonte

Respostas:

23

Há nunca realmente qualquer razão para usar init 6em vez de reboot, a menos que:

  • Por algum motivo, está faltando o rebootexecutável ou
  • Você está deliberadamente tentando evitar notificar os usuários de que o sistema está inoperante.

reboot(contanto que você não corra reboot --force) é realmente a maneira "mais suave" de desligar.

Considerar:

init 6executará todos os scripts de desligamento /etc/init/rc.*, pois reduz o nível de execução do sistema

Mas o rebootcomando , chamado sem o --forcesinalizador, somente reinicia o sistema diretamente (através da rebootchamada do sistema ) quando uma dessas duas situações se aplica:

  • O sistema está no nível de execução 0 (modo de usuário único), portanto não há redução do nível de execução que possa ocorrer, portanto, nenhum script de desligamento é executado automaticamente.
  • O sistema está no nível de execução 6. O que init 6faz para colocar o sistema no nível de execução 6. Novamente, não há nada em execução init 6que a execução do rebootcomando não faça.

Caso contrário, sudo rebooté equivalente a sudo shutdown -r now. Isso faz todas as coisas legais sudo init 6, mas também:

  • notifica os usuários que o sistema está inoperante.
  • impede novos logins (apesar de provavelmente não terem êxito).
  • é mais intuitivo e auto-documentado do quesudo init 6 .

Se você estiver em um sistema com apenas o logon e apenas logins locais, não há nada de errado em usar init 6para reiniciar. Se é assim que você prefere reiniciar, então vá em frente - você não está prejudicando nada ao fazê-lo. Mas também não há nada objetivamente preferível em fazê-lo dessa maneira.

initA própria documentação diz que não é a maneira normal de desligar ou reiniciar o sistema. Considere que, quando inité executado pelo usuário (como quando você executa sudo init 6), ele realmente é executado telinit(consulte man init). telinité o que realmente muda os níveis de execução. E man telinitnos diz:

Normalmente, você usaria a ferramenta shutdown (8) para interromper ou reinicializar o sistema ou reduzi-lo ao modo de usuário único.

Eliah Kagan
fonte
Eu tenho o Alienware X51 dell pc, onde instalei o Ubuntu 13.04 e o kernel 3.11. Quando eu faço o $ init 6, ele é reiniciado e, às vezes, o BIOS continua aparecendo para sempre. É porque estou usando o init 6 e não o comando reboot?
1
@YumYumYum Não vejo por que usar init 6isso causaria isso. Quando você usa, em rebootvez de init 6, sempre ultrapassa o BIOS?
Eliah Kagan 08/09/2013
1
Atualizei o firmware do BIOS de A00 para A02, desde então, minha reinicialização ou o init 6 funcionam, então parece que foi um problema do BIOS. Obrigado.
rebootÀs vezes, a execução pára no meu Ubuntu Server 14.02 apenas de usuário único e login local. É seguro eu sempre fazer, syncseguido de um reboot -f?
user3549648