Остановить то же самое, что и «shutdown -H» и отключить питание так же, как «shutdown -P»?

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

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

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

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

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

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

Это не одно и то же, очень тесно связанные. На практике, если вы не хотите указывать определенное время на остановку или принудительное немедленное перезагрузку / остановку / shutdown -h питания, действительно не имеет значения, запускаете ли вы shutdown -h или halt … или shutdown -r vs 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 .

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

См. Справочные страницы для shutdown и halt для получения дополнительной информации.

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

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