¿Por qué necesitamos la función de reinicio en diferentes binarios?
shutdown -r
y
reboot
¿O difieren en algo?
¿Por qué necesitamos la función de reinicio en diferentes binarios?
shutdown -r
y
reboot
¿O difieren en algo?
Respuestas:
No necesariamente los necesitamos a ambos, pero los tenemos a ambos debido a la historia de Unix y su multiplicidad de versiones.
De sus respectivas páginas man:
el apagado es más general y más potente, mientras que el reinicio es más amigable y fácil de recordar.
shutdown le permite especificar un argumento temporal (para reiniciar en 5 minutos, por ejemplo) y le permite hacer muchas cosas además del reinicio, que incluyen:
Sin embargo, si solo desea reiniciar el sistema ahora, es más fácil escribir reboot
que shutdown -r now
.
shutdown
uso ahora son las predeterminadas. No intente obtener ayuda para el apagado shutdown -h
nunca, especialmente en un servidor en algún lugar de un centro de datos.
Los dos comandos hacen algo diferente, sin embargo, pueden terminar llamándose unos a otros, ¡por eso parecen hacer lo mismo!
reboot
invocará el núcleo para que realmente active un reinicio de hardware. Sin embargo, solo hará esto si el sistema está listo para apagarse: todos los demonios y procesos de usuario deben detenerse, los sistemas de archivos desmontados, etc. Por lo tanto, verifica el nivel de ejecución del sistema, y si no es 0 o 6, entonces invocará El shutdown
comando para ti.
shutdown
hace que se cambie el nivel de ejecución del sistema. El cambio de nivel de ejecución (a 0 para detener o 6 para reiniciar) ejecuta muchos scripts en /etc/rc0.d o rc6.d que cierran demonios, desmontan sistemas de archivos, etc. Finalmente, estos scripts invocan halt
o reboot
- esta vez el sistema está en el nivel de ejecución correcto e indican al núcleo que se reinicie (o detenga).
Además de lo que escribió iconoclasta, hay una distinción importante entre los dos programas: shutdown
está dentro /sbin
, mientras reboot
está dentro /usr/bin
.
¿Por qué importa esto, preguntas? Te lo diré.
Las cosas debajo /usr
son aquellas que no tienen que estar disponibles hasta que el sistema se inicie lo suficiente como para que el sistema sea mínimamente funcional. Directorios de nivel superior que tradicionalmente nunca se montan en sistemas de archivos separados - /bin
, /etc
, /sbin
, etc - se espera que esté disponible mientras el sistema está llegando a este estado mínimamente útil. Hay varias implicaciones de este diseño; por ejemplo, es un mal estilo escribir la cláusula "stop" de un script de inicio SysV que usa programas en /usr/bin
si hay una alternativa en /bin
o /sbin
.
shutdown
es la utilidad clave, la que siempre está disponible. reboot
es solo una utilidad de conveniencia.
reboot
está en /sbin
Debian (con SysVinit) y Ubuntu (con upstart).