¿Cuál es la diferencia entre los comandos halty shutdown?
fuente
¿Cuál es la diferencia entre los comandos halty shutdown?
Generalmente, uno usa el shutdowncomando . Permite una demora de tiempo y un mensaje de advertencia antes de apagar o reiniciar, lo cual es importante para la administración del sistema de servidores shell multiusuario; Puede proporcionar a los usuarios un aviso anticipado del tiempo de inactividad.
Como tal, el comando de apagado debe usarse de esta manera para detener / apagar la computadora de inmediato (al menos en Linux y FreeBSD):
shutdown -h now
O para reiniciarlo con una advertencia personalizada de 30 minutos de antelación:
shutdown -r +30 "Planned software upgrades"
Después del retraso, shutdownle dice initque cambie a nivel de ejecución 0 (detención) o 6 (reinicio). (Tenga en cuenta que omitir -ho -rprovocará que el sistema entre en modo de usuario único (nivel de ejecución 1), que mata la mayoría de los procesos del sistema pero en realidad no detiene el sistema; aún permite que el administrador permanezca conectado como root.
Una vez que se han eliminado los procesos del sistema y se han desmontado los sistemas de archivos, el sistema se detiene / apaga o se reinicia automáticamente. Esto se realiza mediante el comando haltoreboot , que sincroniza los cambios en los discos y luego realiza la detención / apagado real o el reinicio.
En Linux, si se ejecuta halto rebootcuando el sistema aún no ha iniciado el proceso de apagado, invocará el shutdowncomando automáticamente en lugar de realizar directamente la acción deseada. Sin embargo, en sistemas como FreeBSD , estos comandos primero inician sesión en la acción wtmpy luego realizan la detención / reinicio inmediatamente , sin eliminar primero los procesos o desmontar los sistemas de archivos.
halt,rebootyshutdownlos programas que invocan entre sí. Hay un solo programa, con muchos analizadores de línea de comandos que se canalizan internamente en una ruta de código. Tampoco hay niveles de ejecución. El apagado tampoco entra en un modo de usuario único. De hecho, se cambió el nombre del modo de usuario único. Para obtener detalles, consulte unix.stackexchange.com/a/196014/5132 .El pasado
En la década de 1980, los BSD tenían
halt,rebootyshutdown. System 5 UNIX tenía un conjunto de herramientas de compatibilidad BSD. Pero, de forma nativa, tenía su propia orden diferenteshutdown; y no teníahaltorebooten absoluto. (Algunas variantes del Sistema 5 tenían cosas como las de SCO XENIXhaltsys).El BSD
halty losrebootcomandos fueron de bajo nivel, drásticos e inmediatos. La manera considerada de cerrar un sistema BSD fue elshutdowncomando, que hizo todas las cosas que uno espera que sucedan:wallmensajes a los usuarios, servicios cortados con gracia, entradas de registro escritas, inicios de sesión deshabilitados, etc.Mientras que los BSD fueron en gran parte donde la sabiduría recibida originó esos "
shutdownejecutivoshalt/reboot", y que estos últimos debían usarse con cuidado; era el mundo del sistema 5, donde la gente aprendió que el hábito contrariohalt/rebooteran taquigrafías simplemente a mano y nada más:/usr/ucb/haltdesde el "paquete de compatibilidad BSD", no fue diferente en efectoshutdown -h. Ambos terminaron haciendoinit 0.Otras lecturas
halt. 11/05/1982. 4.2BSD manual.haltsys. 2005-06-03. Manual SCO OpenServer.Hoy
Hoy en día, tenemos una gama de posibles conjuntos de herramientas de administración del sistema. Los BSD todavía tienen su conjunto de herramientas, aunque purgado de cualquier posible AT & Tisms en la década de 1990. Miquel van Smoorenburg en 1992 (re) escribió un Linux
init+rc, y sus herramientas asociadas, que las personas ahora denominan "System 5 init", aunque en realidad no es el software del Sistema 5 de UNIX (y no es soloinit) También hay SystemD , advenedizo , y comilona , cada uno de los cuales tiene sus propias implementaciones dehalt,reboot,fasthalt,fastboot, y así sucesivamente.Los conjuntos de herramientas también han crecido y cambiado. Ahora hay un
poweroffcomando, no presente en los sistemas operativos de la década de 1980 porque las Unidades Centrales de Procesamiento en la mayoría de las máquinas contemporáneas no tenían forma de controlar sus fuentes de alimentación. Los conjuntos de herramientas de Linux en particular han adquirido los comandos BSD; pero, al igual que las herramientas de compatibilidad BSD en el Sistema 5 de UNIX, no son exactamente iguales y las cosas se han aplanado en gran medida.Este aplanamiento nos ha llevado al punto donde
haltyshutdownson en su mayoría de la misma. Pero los detalles exactos varían de un conjunto de herramientas a otro, y la mecánica de cada conjunto de herramientas es ligeramente diferente.También nos ha llevado a la posición ligeramente embarazosa, donde este conjunto de comandos se ha vuelto tan adornada con opciones de compatibilidad que ahora permite a las personas para dar computadoras instrucciones contradictorias como
reboot --haltypoweroff --reboot, como he señalado en la página del manual para la comilonahalt,fasthalt,reboot,fastboot, ypoweroffcomandos. ☺El conjunto de herramientas systemd
halt,reboot,poweroff,telinit, Yshutdownson todo un programa . En realidad es el propiosystemctlprograma de systemd . Tiene varios analizadores de línea de comandos para las diversas sintaxis de línea de comandos de esos comandos, así como los suyos propios, pero después de eso se canaliza en gran medida internamente en una ruta de código. No hay diferencia entre usarhalty sus opciones de comando para activar una acción y usarshutdowny sus opciones de comando para activar la misma acción.systemd no considera el modo de rescate (que es lo que la gente de systemd ha renombrado como modo de usuario único ) como un estado de apagado del sistema, y no es accesible con ninguno de estos comandos. Sin opción
shutdown nowes lo mismo quepoweroff.Otras lecturas:
Los BSD
Los BSD conservan en gran medida su semántica de los años ochenta.
halty porshutdownlo tanto no son equivalentes en sus conjuntos de herramientas.haltyrebootson un solo programa; y todavía son de bajo nivel, inmediatos y drásticos. Mientras que ,shutdownypowerofftambién un solo programa, haga todas las cosas consideradas como apagado programado, escribirwallmensajes, acciones de registro, deshabilitar el inicio de sesión, etc.En los conjuntos de herramientas BSD,
shutdown/powerofftradicionalmente terminaba invocandohalt/rebootpara promulgar el cambio final de estado del sistema. El (a menudo hoy en día incorrecto) recibió la sabiduría de que "shutdownexecshalt/reboot" de hecho todavía tiene NetBSD y OpenBSD. Pero en FreeBSD / TrueOS / DragonFlyBSD solo es el caso si-ose utiliza la opción. En estos BSD, tanto de estos programas normalmente promulgar el cambio final del estado del sistema mediante el envío de varias señales (INT,USR1yUSR2) para procesar # 1.inithace toda la gestión del estado del sistema en estos sistemas.En todos ellos, la opción-menos
shutdown nowno es equivalente a cualquiera dehalt,rebootopoweroff. Transita al modo de usuario único BSD , desde el cual se puede volver a pasar al modo multiusuario .Otras lecturas:
shutdown. Manual del administrador del sistema . Páginas del manual de NetBSD. 2011-11-04.reboot,halt. Páginas del manual de OpenBSD. 2016-09-03.shutdown. Páginas del manual de FreeBSD. 2016-09-21.reboot,halt,fastboot,fasthalt. Páginas del manual de FreeBSD. 2017-03-19.shutdown. Manual del administrador del sistema . Páginas del manual de DragonFlyBSD. 2016-09-29.reboot,halt,fastboot,fasthalt. Manual del administrador del sistema . Páginas del manual de DragonFlyBSD. 2016-09-29.El conjunto de herramientas nosh
En el conjunto de herramientas de gestión del sistema nosh,
halt,fasthalt,poweroff,fastpoweroff,reboot, yfastbootson todos un solo programa. Es una cuña de compatibilidad con versiones anteriores que normalmente simplemente encadenashutdown, lo contrario de la sabiduría recibida. La--forceopción hace que se encadene en susystem-controllugar.Por lo tanto, no hay diferencia (ausente
--force) entre elhaltcomando y elshutdowncomando (con la opción equivalente) en este conjunto de herramientas, ya que este conjunto de comandos de "compatibilidad BSD / System 5" es simplemente una capa delgada de calce en la parte superiorshutdown.Otras lecturas:
shutdown. páginas del manual del conjunto de herramientas nosh. Softwarestelinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …páginas del manual del conjunto de herramientas nosh. SoftwaresEl conjunto de herramientas advenedizo
Al igual que con nosh, en el conjunto de herramientas de administración del sistema inicial se aplica lo contrario de la sabiduría BSD recibida.
halt,,rebootypoweroffson todos un programa, que normalmente encadena ashutdown; a menos que se use la--forceopción, lo que hace que elreboot()sistema se llame a sí mismo.Entonces, nuevamente, no hay diferencia (ausente
--force) entre elhaltcomando y elshutdowncomando (con la opción equivalente) en este conjunto de herramientas. También de nuevo, la opción-menosshutdown now(ninguno de los cualeshalt,rebootopoweroffpuede llegar a invocar, ya que todas las opciones de configuración) trae el sistema en modo de usuario único en lugar de apagarlo.Otras lecturas:
shutdown(8) . Páginas de manual de Ubuntu.reboot(8),halt(8),poweroff(8) . Páginas de manual de Ubuntu.El conjunto de herramientas Linux System 5
init+rcUna vez más, en este conjunto de herramientas se aplica lo opuesto a la sabiduría BSD recibida
haltyrebootsimplemente se encadena ashutdown, a menos que el sistema ya esté apagado o detenga los "niveles de ejecución", en cuyo caso estos comandos realmente promulgan el cambio final de estado del sistema.shutdowna su vez encadena ainit.Entonces, de nuevo, no hay diferencia (a menos que el sistema ya esté apagado en gran medida) entre
haltyshutdownporque el primero solo invoca al segundo. Y sí, otra vez, opción menosshutdown now(que ninguno dehalt,rebootopoweroffpuede llegar a invocar, ya que todas las opciones de configuración) trae el sistema en modo de usuario único en lugar de apagarlo.fuente
Sospecho que esto depende en cierta medida de la versión de UNIX / Linux que esté utilizando. En Centos (y espero que otros Linux modernos) detenga el apagado de las llamadas (siempre que no esté en el nivel de ejecución 0 o 6) para que su sistema se apague limpiamente. En Solaris 10, la detención es más brutal, simplemente vacía los cachés de disco y apaga el sistema; no se hace ningún intento de ejecutar scripts o apagar las instalaciones de smf .
fuente
Para aquellos que usan AWS EC2: en AWS se
shutdowndetiene una instancia, cuando lahalttermina .fuente
En Linux, "detener" y "reiniciar" son alias del comando de apagado,
shutdown -hyshutdown -rrespectivamente. El cierre de Bareword generalmente supone -h.fuente
aliasesen el sentido de alias de shell, pero sí,haltbásicamente solo llamashutdown -hyrebootejecutashutdown -r. Tenga en cuenta que si pasa la-fopción (fuerza) dehaltoreboot,shutdownse no llama.sendmailcomando en este punto: al igual que con los MTA, en realidad no importa qué sistema de inicio use, porque todos reconocerán ambosshutdownyhaltcomo tales.sendmailcomando. Es como elsendmailcomando, pero no en la forma en que piensas.