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