¿Es lo mismo detener como "shutdown -H" y apagar lo mismo que "shutdown -P"?

Respuestas:

26

Es un poco histórico.

haltse utilizó antes de ACPI (que hoy apagará la alimentación) *. Pararía el sistema y luego imprimiría un mensaje en el sentido de "está bien apagarlo ahora". En aquel entonces había interruptores físicos de encendido / apagado, en lugar del botón combinado de encendido controlado por ACPI de las computadoras modernas.

poweroff, naturalmente detendrá el sistema y luego llamará a ACPI para que se apague.

* En estos días haltes lo suficientemente inteligente como para llamar automáticamente poweroffsi ACPI está habilitado. De hecho, son funcionalmente equivalentes ahora.

bahamat
fuente
Interesante: en mi computadora portátil que ejecuta Gentoo, /sbin/poweroffes un enlace simbólico a /sbin/halt.
phunehehe
Gracias bahamat! Estoy hablando de dos opciones para el comando shutdown. ¿Es el comando haltel mismo que el shutdown -Hcomando y poweroffel mismo que shutdown -P? @phunehehe también.
StackExchange for All
@phunehehe: Sí, estaba bastante seguro de que ahora son iguales, pero no me molesté en mirar.
bahamat
@Tim: Sí, esas banderas son lo mismo que llamar al comando. Como dije, es más o menos una diferencia histórica.
bahamat
1
De vuelta en el día, haltsolía hacer eso. Sin apagado ordenado, simplemente detenga lo que la máquina estaba haciendo en ese momento. Era común emitir sync;sync;sync;haltpara asegurarse de que todas las memorias intermedias se hubieran escrito en el disco.
kurtm
15

No son lo mismo, solo están muy relacionados. En la práctica, a menos que desee especificar un momento particular para apagar o forzar un reinicio / detención / apagado no limpio inmediato, realmente no importa si ejecutashutdown -h o halt... o shutdown -rvs reboot. Las cosas no eran tan cómodas en el pasado, pero esta es la forma en que funciona ahora (muchas de las oportunidades de ambigüedad o error del usuario se han eliminado / suavizado).

/sbin/shutdownhace muchas cosas de "limpieza" como notificar a los usuarios, bloquear nuevos inicios de sesión mientras el sistema se está cerrando. También se le puede pedir que apague el sistema en un momento determinado o en XX minutos, advirtiendo a los usuarios registrados de vez en cuando sobre el inminente apagado.

También cambia el nivel de ejecución a 0( halt/ poweroff) o 6( reboot), lo que activa el sistema para detener los servicios en ejecución, desmontar discos, etc., en preparación para la detención, apagado o reinicio reales.

Cuando se hace todo eso, llama a /sbin/halt, /sbin/rebooto /sbin/poweroff( rebooty poweroffgeneralmente son enlaces simbólicos a halt, que los interpreta como halt -ry halt -Prespectivamente).

Tenga en cuenta, sin embargo, que si halt/ reboot/ poweroffse llama cuando el sistema NO está en el nivel de ejecución 0o 6luego llamarán shutdownpara hacer su trabajo a menos que se use la opción -fo force.

(Los detalles de cómo se interpretan los niveles de ejecución pueden variar de una distribución a otra, pero 0 y 6se usan como se describe aquí en Debian y Debian-derivados como Ubuntu).

Vea las páginas de manual para shutdownyhalt para más información.

Finalmente, la distinción entre halty poweroffestado es que halthace todo lo posible para apagar la máquina (en algunos tipos de hardware esto significa que cae en un cargador de arranque ROM o similar. En la mayoría del hardware de la PC simplemente se detiene), mientras poweroffcompleta ese paso final y apaga. reboot, por supuesto, se detiene y luego reinicia la computadora.

Por cierto, el valor predeterminado es típicamente uno poweroffo dos reboot, pero puede usarlo -Hcomo argumento para shutdowndetenerlo. Esto no es muy útil en cajas de Linux basadas en PC (pero es útil en máquinas, como cajas de sparc, que tienen un monitor de arranque de firmware. Es posible que pueda ser útil en máquinas más nuevas con una línea de comando EFI).

cas
fuente
1
Esta es una respuesta altamente centrada en Linux a una pregunta no específica del sistema operativo. No todos los shutdowncomandos tienen la noción de niveles de ejecución. shutdownen su mayoría no invoca halt/ reboot/ poweroff; Irónicamente, es en algunos sistemas que no son Linux donde esta sabiduría recibida sigue siendo cierta hoy en día. Y donde los enlaces simbólicos apuntan no es necesariamente halt; no solo eso, en algunos conjuntos de herramientas no son enlaces simbólicos en absoluto. Consulte unix.stackexchange.com/a/196471/5132 para obtener más detalles.
JdeBP