В чем разница между halt
и shutdown
командами?
источник
В чем разница между halt
и shutdown
командами?
Как правило, используется shutdown
команда . Это разрешает задержку и предупреждающее сообщение перед выключением или перезагрузкой, что важно для системного администрирования серверов многопользовательской оболочки; это может предоставить пользователям предварительное уведомление о времени простоя.
Таким образом, команда shutdown должна использоваться следующим образом, чтобы немедленно остановить / выключить компьютер (по крайней мере, в Linux и FreeBSD):
shutdown -h now
Или перезагрузите его с пользовательским предупреждением за 30 минут:
shutdown -r +30 "Planned software upgrades"
После задержки shutdown
указывает init
изменить уровень запуска на 0 (останов) или 6 (перезагрузка). (Обратите внимание, что пропуск -h
или -r
приведет к переходу системы в однопользовательский режим (уровень запуска 1), который убивает большинство системных процессов, но фактически не останавливает систему; он по-прежнему позволяет администратору оставаться в системе как root.)
После того, как системные процессы были убиты, а файловые системы были размонтированы, система останавливается / выключается или автоматически перезагружается. Это делается с помощью halt
или reboot
команды , которая синхронизирует изменения в диски , а затем выполняет фактическую HALT / выключение или перезагрузку питания.
В Linux, если halt
или reboot
запускается, когда система еще не запустила процесс завершения работы, она будет вызывать shutdown
команду автоматически, а не напрямую выполнять запланированное действие. Однако в таких системах, как FreeBSD , эти команды сначала регистрируют действие, wtmp
а затем сразу же выполняют остановку / перезагрузку без предварительной остановки процессов или размонтирования файловых систем.
halt
,reboot
аshutdown
программы, которые вызывают друг друга. Есть одна отдельная программа, с большим количеством анализаторов командной строки, которые внутренне встраиваются в один путь кода. Также нет уровней запуска. Выключение также не входит в однопользовательский режим. Действительно, сам однопользовательский режим был переименован. Для получения дополнительной информации см. Unix.stackexchange.com/a/196014/5132 .Прошлое
В 1980-х годах BSDs было
halt
,reboot
иshutdown
. Система 5 UNIX имела набор инструментов для совместимости с BSD. Но изначально у него была своя, другая,shutdown
команда; и не былоhalt
илиreboot
вообще. (Некоторые варианты System 5 имели такие вещи, как SCO XENIXhaltsys
.)BSD
halt
иreboot
команды были низкоуровневыми, радикальными и немедленными. Внимательным образом , чтобы выключить систему BSD былаshutdown
команда, которая сделала все то , что один ожидает случаться:wall
сообщения для пользователей, услуги изящно убит, записи , написанные лаг, логины отключены, и так далее.В то время как BSD были в основном там, где возникла мудрость, что «
shutdown
execshalt
/reboot
», и что последние должны использоваться с осторожностью; это был мир System 5, где люди усвоили противоположную привычку, чтоhalt
/reboot
были просто удобными сокращениями и не более того:/usr/ucb/halt
из «Пакета совместимости BSD» ничем не отличался по сутиshutdown -h
. Они оба закончили тем, что делалиinit 0
.дальнейшее чтение
halt
, 1982-05-11. Руководство 4.2BSD.haltsys
, 2005-06-03. Руководство по SCO OpenServer.сегодня
В настоящее время у нас есть ряд возможных наборов инструментов для управления системой. У BSD все еще есть свой набор инструментов, хотя он был очищен от любых возможных AT & Tism в 1990-х. Микель ван Смуренбург в 1992 году (пере) написал Linux
init
+rc
и связанные с ним инструменты, которые люди теперь называют «System 5 init», хотя на самом деле это не программное обеспечение из UNIX System 5 (и не толькоinit
). Там также Systemd , выскочка , и перекус , каждый из которых имеет свои собственные реализации изhalt
,reboot
,fasthalt
,fastboot
и так далее.Наборы инструментов также выросли и изменились. Теперь есть
poweroff
команда, которой не было в операционных системах 1980-х годов, потому что центральные процессоры на большинстве современных машин не могли контролировать свои источники питания. В частности, в наборы инструментов Linux включены команды BSD; но, как и инструменты совместимости с BSD в UNIX System 5, они не являются точными аналогами, и все в значительной степени уплощено.Это сглаживание привело нас к точке, где
halt
иshutdown
в основном то же самое. Но точные детали варьируются от набора инструментов к набору инструментов, и механика каждого набора инструментов немного отличается.Он также привел нас к немного неловкому положению , в котором эта команде набор стал настолько помешан вариантами совместимости , что теперь позволяет людям дать компьютерам самостоятельно противоречивые инструкции , как
reboot --halt
иpoweroff --reboot
, как я заметил на странице руководства для Noshhalt
,fasthalt
,reboot
,fastboot
, иpoweroff
команды. ☺Системный набор инструментов
halt
,reboot
,poweroff
,telinit
, Иshutdown
это все одна программа . На самом деле это собственнаяsystemctl
программа systemd . Он имеет несколько синтаксических анализаторов командной строки для различных синтаксисов командных строк этих команд, а также свой собственный, но после этого в основном встраивается в один путь кода внутри. Нет никакой разницы между использованиемhalt
и его параметрами команды для запуска действия и использованиемshutdown
и его параметрами команды для запуска того же действия.systemd не рассматривает режим восстановления (то есть то, что люди systemd переименовали в однопользовательский режим ) как состояние выключенной системы, и он недоступен ни с одной из этих команд. Вариант-меньше так
shutdown now
же, какpoweroff
.Дальнейшее чтение:
BSDs
BSD в основном сохраняют семантику 1980-х годов.
halt
иshutdown
, следовательно, очень не эквивалентны в своих наборах инструментов.halt
иreboot
являются единой программой; и все еще на низком уровне, немедленный и радикальный. Принимая во внимание,shutdown
аpoweroff
также одну программу, которая выполняет всеwall
важные действия, такие как запланированное завершение работы, запись сообщений, действия по регистрации, отключение входа в систему и так далее.В наборах инструментов BSD
shutdown
/poweroff
традиционно заканчивали тем, что вызывалиhalt
/reboot
для окончательного изменения состояния системы. (Часто в наши дни неверные) получили мудрость, что «shutdown
execshalt
/reboot
» на самом деле все еще сохраняется в NetBSD и OpenBSD. Но в FreeBSD / TrueOS / DragonFlyBSD это только тот случай, если используется эта-o
опция. На этих BSDs, и из этих программ обычно принять окончательное изменение состояния системы путем передачи различных сигналов (INT
,USR1
иUSR2
) для обработки # 1.init
выполняет все управление состоянием системы в этих системах.На всех из них, вариант менее
shutdown now
не эквивалентна любой изhalt
,reboot
илиpoweroff
. Он переходит в однопользовательский режим BSD , из которого можно вернуться в многопользовательский режим .Дальнейшее чтение:
shutdown
, Руководство системного менеджера . Страницы руководства по NetBSD. 2011-11-04.reboot
,halt
. Страницы руководства OpenBSD. 2016-09-03.shutdown
, Страницы Руководства FreeBSD. 2016-09-21.reboot
,halt
,fastboot
,fasthalt
. Страницы Руководства FreeBSD. 2017-03-19.shutdown
, Руководство системного менеджера . Страницы руководства DragonFlyBSD. 2016-09-29.reboot
,halt
,fastboot
,fasthalt
. Руководство системного менеджера . Страницы руководства DragonFlyBSD. 2016-09-29.Набор инструментов Nosh
В Nosh управления системой набора инструментов,
halt
,fasthalt
,poweroff
,fastpoweroff
,reboot
, иfastboot
все одна программа. Это обратная совместимость , что прокладка обычно просто цепи доshutdown
, то напротив принимаемой мудрости.--force
Вариант делает цепьsystem-control
вместо этого.Таким образом, нет никакой разницы (отсутствует
--force
) междуhalt
командой иshutdown
командой (с эквивалентной опцией) в этом наборе инструментов, поскольку этот набор команд «Совместимость с BSD / System 5» представляет собой просто тонкий слой подкладки поверхshutdown
.Дальнейшее чтение:
shutdown
, страницы справочника nosh toolset. Softwares.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
страницы справочника nosh toolset. Softwares.Набор выскочек
Как и в случае с Nosh, в наборе инструментов управления системой выскочка применяется противоположность полученной мудрости BSD.
halt
,reboot
иpoweroff
все это одна программа, которая обычно цепочки кshutdown
; если не используется--force
опция, которая заставляет делатьreboot()
системный вызов сам.Итак, опять же, нет никакой разницы (отсутствует
--force
) междуhalt
командой иshutdown
командой (с эквивалентной опцией) в этом наборе инструментов. Кроме того, опять же, опция без параметровshutdown now
(которая ни одна изhalt
,reboot
или неpoweroff
может в конечном итоге вызываться, поскольку все они устанавливают параметры) переводит систему в однопользовательский режим, а не выключает ее.Дальнейшее чтение:
shutdown
(8) . Страницы руководства по Ubuntu.reboot
(8),halt
(8),poweroff
(8) . Страницы руководства по Ubuntu.Набор инструментов Linux System 5
init
+rc
Опять же , в этом наборе инструментов противоположность полученной BSD мудрости относится и
halt
иreboot
просто цепьshutdown
- если система уже находится в отключенном питании или остановке «уровни запуска», в этом случае эти команды на самом деле ввести в действие окончательного изменения состояния системы.shutdown
в свою очередь цепями кinit
.Итак, опять же, нет никакой разницы (если система уже в значительной степени не закрыта) между
halt
иshutdown
потому, что первое просто вызывает второе. И да, опять же, опция без параметровshutdown now
(которая ни одна изhalt
,reboot
или неpoweroff
может в конечном итоге вызываться, поскольку все они устанавливают параметры) переводит систему в однопользовательский режим, а не выключает ее.источник
Я подозреваю, что это в некоторой степени зависит от того, какую версию UNIX / Linux вы используете. В Centos (и я ожидаю, что в других современных Linux) остановка вызовов прекращается (при условии, что вы не на уровне выполнения 0 или 6), поэтому ваша система будет отключена без ошибок. В Solaris 10 остановка является более жестокой, она просто сбрасывает дисковые кэши и отключает питание системы - не предпринимается никаких попыток запустить какие-либо сценарии или отключить средства smf .
источник
Для тех, кто использует AWS EC2: на AWS
shutdown
останавливается экземпляр, когда онhalt
завершается .источник
В Linux «halt» и «reboot» являются псевдонимами команды shutdown -
shutdown -h
иshutdown -r
соответственно. Выключение без слов обычно предполагает -h.источник
aliases
в смысле псевдонимов оболочки, но да, вhalt
основном это просто вызовыshutdown -h
иreboot
запускshutdown -r
. Обратите внимание, что если вы передадите-f
опцию (force) дляhalt
илиreboot
,shutdown
она не вызывается .sendmail
команде на данный момент - Как и в случае с MTA, на самом деле не имеет значения, какую систему инициализации вы используете, потому что все они будут распознавать и тоshutdown
и другоеhalt
.sendmail
команде. Это какsendmail
команда, но не так, как вы думаете.