¿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 rebootque shutdown -r now.
shutdownuso ahora son las predeterminadas. No intente obtener ayuda para el apagado shutdown -hnunca, 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!
rebootinvocará 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 shutdowncomando para ti.
shutdownhace 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 halto 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: shutdownestá dentro /sbin, mientras rebootestá dentro /usr/bin.
¿Por qué importa esto, preguntas? Te lo diré.
Las cosas debajo /usrson 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/binsi hay una alternativa en /bino /sbin.
shutdownes la utilidad clave, la que siempre está disponible. rebootes solo una utilidad de conveniencia.
rebootestá en /sbinDebian (con SysVinit) y Ubuntu (con upstart).