"Reiniciar" o "apagar -r ahora": ¿qué comando de reinicio es más seguro?

50

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
dandan
fuente
1
tenemos todo tipo - como redhat 4,5,6,7
dandan
66
Rebobinemos: ¿Por qué crees que puede haber una diferencia en seguridad?
underscore_d
2
@underscore_d: no es irracional pensar que uno podría ser un comando de "uso interno exclusivo" que no realiza los mismos pasos de apagado limpio. Por ejemplo, tal vez uno usa el otro después de realizar algunos pasos iniciales de limpieza y apagado. Por supuesto, la página del manual explica que rebootes solo un comando heredado y que todavía existe solo para la compatibilidad con versiones anteriores.
Peter Cordes
1
@knowhy Una pregunta no puede ser un duplicado de una pregunta en un sitio diferente ..
Insane

Respuestas:

50

Para los sistemas Red Hat, no hay diferencia funcional entre rebooty shutdown -r now.

Haz lo que sea más fácil para ti.

ewwhite
fuente
13
¡Pero uno te hace escribir más y es fundamentalmente más genial!
Loco
Uno requiere acceso de superusuario, el otro puede ser ejecutado por cualquier usuario (a menos que esté restringido) desde una sesión X.
Burhan Khalid el
2
@BurhanKhalid Si hay personas aleatorias que inician sesión en sesiones X en los servidores, entonces podría tener mayores problemas que preguntarse cuál de los dos comandos es "más seguro".
un CVn
1
Al menos en Debian (aunque admitiré fácilmente que no sé sobre Red Hat, pero la respuesta de Janne Pikkarainen sugiere que puede ser similar pero diferente) halt, rebooty poweroffno 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".
un CVn el
88

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.

Mikhail T.
fuente
13

Si se echa un vistazo, en RHEL 7 tanto /sbin/shutdowny /sbin/rebootes en realidad sólo un enlace simbólico a systemd de systemctlcomandos. 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.

Janne Pikkarainen
fuente
12
Este argumento no me parece muy convincente: es obvio que /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 examinando ARGV[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.
ruakh
3
Tenga cuidado de asumir que un enlace simbólico implica equivalencia, particularmente si hay diferentes nombres involucrados.
mckenzm
ruakh tiene razón: piénselo por un momento, aunque rebootesté enlazado systemctl, no puede usar, por ejemplo, reboot status whatever.servicecomo lo haría con este último, ¿verdad?
Grawity
9

Usar rebootes más seguro.

El uso de rebootsu intención es claro y no hay forma de escribirlo incorrectamente para otra cosa como la shutdown -t nowque podría ocasionar algunos dolores de cabeza si está utilizando un servidor remoto con control limitado.

Antzi
fuente
2
En mi humilde opinión la respuesta subestimada. ¡Muy a menudo olvidamos lo importante que es dejar en claro las intenciones y cuánto tiempo y malas palabras ahorra a la larga!
RoughTomato
1

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 usa shutdown -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.

robocat
fuente
0

Los sistemas más antiguos definitivamente hicieron una distinción entre shutdowny reboot. 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 el shutdownhábito.

usuario19151
fuente