Respuestas:
Generalmente, uno usa el shutdown
comando . 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, shutdown
le dice init
que cambie a nivel de ejecución 0 (detención) o 6 (reinicio). (Tenga en cuenta que omitir -h
o -r
provocará 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 halt
oreboot
, que sincroniza los cambios en los discos y luego realiza la detención / apagado real o el reinicio.
En Linux, si se ejecuta halt
o reboot
cuando el sistema aún no ha iniciado el proceso de apagado, invocará el shutdown
comando 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 wtmp
y luego realizan la detención / reinicio inmediatamente , sin eliminar primero los procesos o desmontar los sistemas de archivos.
halt
, reboot
y shutdown
los 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 .
En la década de 1980, los BSD tenían halt
, reboot
y shutdown
. System 5 UNIX tenía un conjunto de herramientas de compatibilidad BSD. Pero, de forma nativa, tenía su propia orden diferente shutdown
; y no tenía halt
o reboot
en absoluto. (Algunas variantes del Sistema 5 tenían cosas como las de SCO XENIX haltsys
).
El BSD halt
y los reboot
comandos fueron de bajo nivel, drásticos e inmediatos. La manera considerada de cerrar un sistema BSD fue el shutdown
comando, que hizo todas las cosas que uno espera que sucedan: wall
mensajes 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 " shutdown
ejecutivos halt
/ reboot
", y que estos últimos debían usarse con cuidado; era el mundo del sistema 5, donde la gente aprendió que el hábito contrario halt
/ reboot
eran taquigrafías simplemente a mano y nada más: /usr/ucb/halt
desde el "paquete de compatibilidad BSD", no fue diferente en efecto shutdown -h
. Ambos terminaron haciendo init 0
.
halt
. 11/05/1982. 4.2BSD manual.haltsys
. 2005-06-03. Manual SCO OpenServer.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 solo init
) También hay SystemD , advenedizo , y comilona , cada uno de los cuales tiene sus propias implementaciones de halt
, reboot
, fasthalt
, fastboot
, y así sucesivamente.
Los conjuntos de herramientas también han crecido y cambiado. Ahora hay un poweroff
comando, 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 halt
y shutdown
son 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 --halt
y poweroff --reboot
, como he señalado en la página del manual para la comilona halt
, fasthalt
, reboot
, fastboot
, y poweroff
comandos. ☺
halt
, reboot
, poweroff
, telinit
, Y shutdown
son todo un programa . En realidad es el propio systemctl
programa 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 usar halt
y sus opciones de comando para activar una acción y usar shutdown
y 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 now
es lo mismo que poweroff
.
Los BSD conservan en gran medida su semántica de los años ochenta. halt
y por shutdown
lo tanto no son equivalentes en sus conjuntos de herramientas. halt
y reboot
son un solo programa; y todavía son de bajo nivel, inmediatos y drásticos. Mientras que , shutdown
y poweroff
también un solo programa, haga todas las cosas consideradas como apagado programado, escribir wall
mensajes, acciones de registro, deshabilitar el inicio de sesión, etc.
En los conjuntos de herramientas BSD, shutdown
/ poweroff
tradicionalmente terminaba invocando halt
/ reboot
para promulgar el cambio final de estado del sistema. El (a menudo hoy en día incorrecto) recibió la sabiduría de que " shutdown
execs halt
/ reboot
" de hecho todavía tiene NetBSD y OpenBSD. Pero en FreeBSD / TrueOS / DragonFlyBSD solo es el caso si -o
se 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
, USR1
y USR2
) para procesar # 1. init
hace toda la gestión del estado del sistema en estos sistemas.
En todos ellos, la opción-menos shutdown now
no es equivalente a cualquiera de halt
, reboot
o poweroff
. Transita al modo de usuario único BSD , desde el cual se puede volver a pasar al modo multiusuario .
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.En el conjunto de herramientas de gestión del sistema nosh, halt
, fasthalt
, poweroff
, fastpoweroff
, reboot
, y fastboot
son todos un solo programa. Es una cuña de compatibilidad con versiones anteriores que normalmente simplemente encadena shutdown
, lo contrario de la sabiduría recibida. La --force
opción hace que se encadene en su system-control
lugar.
Por lo tanto, no hay diferencia (ausente --force
) entre el halt
comando y el shutdown
comando (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 superior shutdown
.
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. SoftwaresAl 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
,, reboot
y poweroff
son todos un programa, que normalmente encadena a shutdown
; a menos que se use la --force
opción, lo que hace que el reboot()
sistema se llame a sí mismo.
Entonces, nuevamente, no hay diferencia (ausente --force
) entre el halt
comando y el shutdown
comando (con la opción equivalente) en este conjunto de herramientas. También de nuevo, la opción-menos shutdown now
(ninguno de los cuales halt
, reboot
o poweroff
puede llegar a invocar, ya que todas las opciones de configuración) trae el sistema en modo de usuario único en lugar de apagarlo.
shutdown
(8) . Páginas de manual de Ubuntu.reboot
(8), halt
(8), poweroff
(8) . Páginas de manual de Ubuntu.init
+rc
Una vez más, en este conjunto de herramientas se aplica lo opuesto a la sabiduría BSD recibida halt
y reboot
simplemente se encadena a shutdown
, 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. shutdown
a su vez encadena a init
.
Entonces, de nuevo, no hay diferencia (a menos que el sistema ya esté apagado en gran medida) entre halt
y shutdown
porque el primero solo invoca al segundo. Y sí, otra vez, opción menos shutdown now
(que ninguno de halt
, reboot
o poweroff
puede llegar a invocar, ya que todas las opciones de configuración) trae el sistema en modo de usuario único en lugar de apagarlo.
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 .
Para aquellos que usan AWS EC2: en AWS se shutdown
detiene una instancia, cuando la halt
termina .
En Linux, "detener" y "reiniciar" son alias del comando de apagado, shutdown -h
y shutdown -r
respectivamente. El cierre de Bareword generalmente supone -h.
aliases
en el sentido de alias de shell, pero sí, halt
básicamente solo llama shutdown -h
y reboot
ejecuta shutdown -r
. Tenga en cuenta que si pasa la -f
opción (fuerza) de halt
o reboot
, shutdown
se no llama.
sendmail
comando en este punto: al igual que con los MTA, en realidad no importa qué sistema de inicio use, porque todos reconocerán ambos shutdown
y halt
como tales.
sendmail
comando. Es como el sendmail
comando, pero no en la forma en que piensas.