Является ли halt тем же самым, что и «shutdown -H», а poweroff тем же самым, что и «shutdown -P»?

Является ли halt тем же самым, что и «shutdown -H», а poweroff тем же самым, что и «shutdown -P»?

Я не нашел четкого ответа на вопрос о различиях между двумя вариантами команды shutdown.

То haltже самое, что shutdown -Hи poweroffто же самое, что и shutdown -P?

решение1

Это немного исторично.

haltиспользовался до ACPI (который сегодня отключит питание для вас)*. Он останавливал систему и затем выводил сообщение типа «теперь можно выключить питание». Тогда были физические переключатели включения/выключения, а не комбинированная кнопка питания, управляемая ACPI, как у современных компьютеров.

poweroff, естественно, остановит систему и затем вызовет отключение питания ACPI.

* В наши дни haltдостаточно умны, чтобы автоматически вызывать, poweroffесли включен ACPI. Фактически, они теперь функционально эквивалентны.

решение2

Это не одно и то же, просто очень тесно связано. На практике, если вы не хотите указать конкретное время для выключения или принудительно выполнить неприятную перезагрузку/остановку/выключение питания, на самом деле не имеет значения, запускаете ли вы shutdown -hили halt... или shutdown -rпротив reboot. Раньше все было не так удобно, но сейчас это работает так (многие возможности для двусмысленности или ошибки пользователя были удалены/сглажены).

/sbin/shutdownвыполняет много "очистительных" действий, таких как уведомление пользователей, блокировка новых входов в систему во время выключения системы. Также можно указать, что система должна быть выключена в определенное время или через XX минут - предупреждая пользователей, вошедших в систему, время от времени о предстоящем выключении.

Он также изменяет уровень запуска на 0( halt/ poweroff) или 6( reboot), что заставляет систему останавливать работающие службы, отключать диски и т. д. в рамках подготовки к фактической остановке, отключению питания или перезагрузке.

Когда все это сделано, он вызывает /sbin/halt, /sbin/reboot, или /sbin/poweroff( rebootи poweroffобычно являются символическими ссылками на halt, что интерпретирует их как halt -rи halt -Pсоответственно).

Однако следует отметить, что если halt/ reboot/ poweroffвызывается, когда система НЕ находится на уровне выполнения 0или , 6то они будут вызываться shutdownдля выполнения своей работы, если только не используется опция -fили .force

(Подробности интерпретации уровней выполнения могут различаться в зависимости от дистрибутива, но в Debian и производных от Debian дистрибутивах, таких как Ubuntu, 0они 6используются так, как описано здесь).

shutdownБолее подробную информацию смотрите на страницах руководства halt.

Наконец, различие между haltи poweroffсостоянием заключается в том, что haltделает все, вплоть до фактического выключения машины (на некоторых типах оборудования это означает, что она переходит в загрузчик ПЗУ или что-то подобное. На большинстве ПК оборудование просто останавливается), а затем poweroffзавершает этот последний шаг и выключается. reboot, конечно, переходит в состояние останова, а затем перезагружает компьютер.

BTW, по умолчанию обычно используется либо poweroffили reboot, но вы можете использовать -Hв качестве аргумента , чтобы shutdownостановить его. Это не очень полезно на ПК-компьютерах Linux (но полезно на машинах, таких как sparc-компьютеры, у которых есть монитор загрузки прошивки. Возможно, это может стать полезным на новых машинах с командной строкой EFI).

Связанный контент