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