¿Reiniciar es lo mismo que init 6?

22

¿Reiniciar es lo mismo que init 6 para ubuntu?

Estoy ejecutando Ubuntu 12.04 en Amazon EC2. Cuando aparece en el cuadro, puedo escribir runlevely obtengo:

N 2

Mirando man rebootveo que:

Cuando se llama con --force o cuando está en el nivel de ejecución 0 o 6, esta herramienta invoca la llamada al sistema reboot (2) y reinicia directamente el sistema. De lo contrario, esto simplemente invoca la herramienta shutdown (8) con los argumentos apropiados.

Si leo man shutdown 8, veo:

shutdown se encarga de que el sistema se desactive de manera segura. Se notifica a todos los usuarios que han iniciado sesión que el sistema se está cayendo y, en los últimos cinco minutos de TIME, se evitan nuevos inicios de sesión.

Mi comprensión básica sobre la diferencia entre rebooty init 6es:

  • En otras distribuciones y quizás distribuciones más antiguas reboot, simplemente desmontarían los discos y, básicamente, presionarían el interruptor de encendido sin ejecutar ningún script de apagado
  • init 6ejecutará todos los scripts de apagado /etc/init/rc.*ya que reduce el nivel de ejecución del sistema
  • En las versiones más nuevas de Ubuntu, el rebootcomando sin --forceo -fejecutará el comando de apagado que básicamente haría lo mismo queinit 6
  • Probablemente sea mejor acostumbrarse a usarlo en init 6lugar de hacerlo, rebootya que es más seguro y funcionaría mejor en la distribución cruzada, pero el comportamiento predeterminado de rebootse ha cambiado para tratar de evitar errores / daños si alguien lo usa.

¿Eso es correcto? Si no, ¿qué me estoy perdiendo?

cwd
fuente

Respuestas:

23

Realmente nunca hay una razón convincente para usar en init 6lugar de reboot, a menos que:

  • Por alguna razón, te falta el rebootejecutable, o
  • Intenta deliberadamente evitar notificar a los usuarios que el sistema se está cayendo.

reboot(siempre y cuando no corras reboot --force) es en realidad la forma "más suave" de cerrar.

Considerar:

init 6ejecutará todos los scripts de apagado /etc/init/rc.*ya que reduce el nivel de ejecución del sistema

Pero el rebootcomando , llamado sin la --forcebandera, solo reinicia directamente el sistema (a través de la rebootllamada al sistema ) cuando se aplica una de estas dos situaciones:

  • El sistema se encuentra en el nivel de ejecución 0 (modo de usuario único), por lo que no hay una reducción del nivel de ejecución que puede ocurrir, por lo que no hay secuencias de comandos de apagado se ejecutan automáticamente.
  • El sistema está en el nivel de ejecución 6. ¿Qué init 6hace para poner el sistema en el nivel de ejecución 6. De nuevo, no hay nada en ejecución init 6que ejecute el rebootcomando no lo hará.

De lo contrario, sudo rebootes equivalente a sudo shutdown -r now. Esto hace todas las cosas buenas sudo init 6, pero también:

  • notifica a los usuarios que el sistema se está cayendo.
  • evita nuevos inicios de sesión (aunque probablemente no tendrían éxito de todos modos).
  • es más intuitivo y autodocumentado quesudo init 6 .

Si está en un sistema con solo usted conectado y solo inicios de sesión locales, no hay nada de malo en usar init 6para reiniciar. Si así es como prefieres reiniciar, entonces, por supuesto, sigue adelante: no estás dañando nada al hacerlo. Pero tampoco hay nada objetivamente preferible en hacerlo de esta manera.

initLa propia documentación dice que no es la forma normal de apagar o reiniciar el sistema. Tenga en cuenta que cuando initlo ejecuta el usuario (como cuando se ejecuta sudo init 6), en realidad se ejecuta telinit(ver man init). telinites lo que realmente cambia los niveles de ejecución. Y man telinitnos dice:

Normalmente usaría la herramienta de apagado (8) para detener o reiniciar el sistema, o para ponerlo en modo de usuario único.

Eliah Kagan
fuente
Tengo Alienware X51 dell pc, donde instalé Ubuntu 13.04 y el kernel 3.11. Cuando hago $ init 6, se reinicia y, a veces, el BIOS sigue mostrándose para siempre. ¿ES porque estoy usando init 6 y no reinicio el comando?
1
@YumYumYum No veo por qué usar init 6esto causaría esto. Cuando usa en rebootlugar de init 6, ¿siempre pasa el BIOS?
Eliah Kagan
1
He actualizado el firmware del BIOS de A00 a A02, desde entonces mi reinicio o init 6 funcionan, así que parece que el problema del BIOS fue. Gracias.
La ejecución se rebootdetiene a veces en mi Ubuntu Server 14.02 de usuario único e inicio de sesión local solamente. ¿Es seguro que siempre hago syncseguido de un reboot -f?
user3549648