Я не нашел четкого ответа на вопрос о различиях между двумя вариантами команды 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).