Pregunta:
Solo quiero saber la diferencia entre en
-
reboot
-
init 6
-
shutdown -r now
y cual es el mas seguro y el mejor?
Respuesta:
No hay diferencia en ellos. Internamente hacen exactamente lo mismo:
-
reboot
usa el comando deshutdown
(con el interruptor -r). El comando de apagado se usa para matar todos los procesos en ejecución, desmontar todos los sistemas de archivos y finalmente le dice al kernel que emita el comando ACPI power. La fuente se puede encontrar aquí . En las distribuciones más antiguas, el comando de reinicio obligaba a los procesos a salir al emitir la señalSIGKILL
(que aún se encuentra en las fuentes, se puede invocar con la opción-f
), en las distribuciones más recientes el valor predeterminado es elinit 1 -> shutdown -r
más elegante y amigable coninit 1 -> shutdown -r
. Esto asegura que los demonios se limpien solos antes de apagarse. -
init 6
le dice al proceso deinit
que apague todos los procesos / demonios generados como están escritos en los archivos de inicio (en el orden inverso en el que comenzaron) y, por último, invoque el comandoshutdown -r now
para reiniciar la máquina
Hoy en día no hay mucha diferencia ya que ambos comandos hacen exactamente lo mismo y respetan los scripts de inicio utilizados para iniciar los servicios / demonios invocando los scripts de cierre para ellos. Excepto por reboot -f -r now
como se indica a continuación
Hay una pequeña explicación tomada de las páginas de manual de por qué el reboot -f
no es seguro:
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
Editar:
Olvidé mencionar que en las próximas distribuciones de RHEL, debe usar el nuevo comando systemctl
para ejecutar poweroff / reboot. Como se indica en las páginas de manual de reboot
y shutdown
, son "un comando heredado disponible solo para compatibilidad". y el método systemctl
será el único seguro.