Tenemos en nuestra organización alrededor de ~ 500 máquinas RedHat Linux.
En todas las máquinas instalamos aplicaciones y servicios /etc/init.d, y servidores Oracle RAC. Tenemos la intención de realizar actualizaciones de yum en todas las máquinas y luego reiniciar.
Entonces me preguntaba qué comando es más seguro:
reboot
o
shutdown -r now

rebootes solo un comando heredado y que todavía existe solo para la compatibilidad con versiones anteriores.Respuestas:
Para los sistemas Red Hat, no hay diferencia funcional entre
rebootyshutdown -r now.Haz lo que sea más fácil para ti.
fuente
halt,rebootypoweroffno acepte un mensaje de razón ni un momento, como explicó Mikhail T. . Creo que consideraría que una herramienta es capaz de hacer algo que otra no permite que sea una "diferencia funcional".El apagado es preferible porque le permite especificar el motivo de la acción drástica, algo que siempre debe hacer. El mensaje se grabará en el registro (s) para la posteridad. Por ejemplo:
shutdown -r now 'Kernel upgrade requires reboot'También puede realizar un reinicio programado , especificando algo que no sea
nowel tiempo de reinicio:shutdown -r 22:00 'Work around kernel memory leak'Luego, sus usuarios recibirán recordatorios periódicos para salir y así sucesivamente: el proceso será más ordenado y profesional.
fuente
Si se echa un vistazo, en RHEL 7 tanto
/sbin/shutdowny/sbin/rebootes en realidad sólo un enlace simbólico a systemd desystemctlcomandos. Entonces, usa lo que quieras. No hay diferencia funcional como dijo ewwhite, ni siquiera en versiones anteriores de RHEL que aún no usaban systemd.fuente
/sbin/shutdowny/sbin/rebootno se comportan igual en todos los casos (en particular: ¡/sbin/shutdownno se reinicia por defecto!), Por lo que si están vinculados al mismo ejecutable, entonces ese ejecutable debe estar examinandoARGV[0]y ajustando su comportamiento en consecuencia. Si bien eso ciertamente reduce el riesgo de diferencias involuntarias , no es evidencia convincente de que no haya diferencias funcionales intencionales sobre las que el OP pueda querer saber.rebootesté enlazadosystemctl, no puede usar, por ejemplo,reboot status whatever.servicecomo lo haría con este último, ¿verdad?Usar
rebootes más seguro.El uso de
rebootsu intención es claro y no hay forma de escribirlo incorrectamente para otra cosa como lashutdown -t nowque podría ocasionar algunos dolores de cabeza si está utilizando un servidor remoto con control limitado.fuente
Para RHEL moderno, se recomienda usar el comando systemctl como se resume aquí : las distribuciones [recientes] de RHEL deben usar el nuevo comando systemctl para emitir apagado / reinicio. Como se indica en las páginas de manual de reinicio y apagado, son "un comando heredado disponible solo para compatibilidad".
Sin embargo, si usa muchas distribuciones diferentes, o distribuciones de varias añadas, entonces tal vez se quede con
shutdown -r now 'reason for shutdown'.La razón principal para usar
rebootsería evitar el riesgo de olvidarse de agregar -r cuando se usashutdown -ren una máquina remota, lo que fácilmente podría resultar en no poder iniciar sesión nuevamente y tener que usar el administrador remoto (si está disponible) para reiniciar el máquina.fuente
Los sistemas más antiguos definitivamente hicieron una distinción entre
shutdownyreboot. Este último no cerraría los servicios ni necesariamente sincronizaría los búferes de disco. En entornos heterogéneos, o para evitar precedentes que podrían ser peligrosos en el futuro cuando se encuentren con otras implementaciones * ix, es valioso adquirir elshutdownhábito.fuente