Я не нашел четкого ответа на различия между двумя вариантами команды shutdown
.
Это так halt
же, как shutdown -H
и так poweroff
же, как shutdown -P
?
Я не нашел четкого ответа на различия между двумя вариантами команды shutdown
.
Это так halt
же, как shutdown -H
и так poweroff
же, как shutdown -P
?
Ответы:
Это немного исторически.
halt
был использован до ACPI (который сегодня отключит питание для вас) *. Это приведет к остановке системы, а затем выведет сообщение о том, что «теперь можно выключить питание». В то время существовали физические переключатели вкл / выкл, а не комбинированная кнопка питания, управляемая ACPI современных компьютеров.
poweroff
, естественно, остановит систему и затем отключит питание ACPI.
* В наши дни halt
достаточно умен, чтобы автоматически звонить, poweroff
если ACPI включен. Фактически, они функционально эквивалентны сейчас.
/sbin/poweroff
есть символическая ссылка на /sbin/halt
.
shutdown
. Является ли команда halt
такой же, как shutdown -H
, и команда poweroff
такая же, как shutdown -P
? @phunehehe тоже.
halt
используется , чтобы сделать это. Нет правильного отключения, просто остановите то, что машина делала прямо там и сейчас. Это была общая проблема, sync;sync;sync;halt
чтобы убедиться, что все буферы были записаны на диск.
Они не одно и то же, просто очень тесно связаны. На практике, если вы не хотите , чтобы указать конкретное время для отключения или заставить немедленно нечистые перезагрузки / останов / выключение питания, это действительно не имеет значения , запускать ли вы 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
.
(Детали того , как уровень запуска интерпретируется может варьироваться в зависимости от дистрибутива к дистрибутиву, но 0
и 6
используются , как описано здесь , в Debian и Debian-производных , как Ubuntu).
Смотрите справочные страницы для shutdown
и halt
для получения дополнительной информации.
Наконец, различие между состоянием halt
и poweroff
состоянием состоит в том, halt
что все, вплоть до фактического выключения компьютера, выполняется (на некоторых видах оборудования это означает, что он переходит в загрузчик ПЗУ или тому подобное. На большинстве аппаратных средств ПК он просто останавливается), одновременно poweroff
завершая этот последний шаг и выключается reboot
, конечно, переходит в состояние остановки, а затем перезагружает компьютер.
Кстати, по умолчанию, как правило, либо poweroff
или reboot
, но вы можете использовать -H
в качестве аргумента, shutdown
чтобы сделать его вместо этого. Это не очень полезно для Linux-систем на базе ПК (но полезно на машинах, таких как sparc-блоки, которые имеют монитор загрузки микропрограммы. Возможно, это может оказаться полезным на более новых машинах с командной строкой EFI).
shutdown
команды имеют понятие уровней запуска. shutdown
в основном не вызывает halt
/ reboot
/ poweroff
; по иронии судьбы, именно в некоторых системах, отличных от Linux, эта мудрость остается верной и сегодня. И где символические ссылки указывают не обязательно halt
; Мало того, что в некоторых наборах инструментов они вообще не являются символическими ссылками. См. Unix.stackexchange.com/a/196471/5132 для более подробной информации.