Відповіді:
Як правило, користується shutdownкомандою . Це дозволяє затримати час та попереджати повідомлення перед вимкненням або перезавантаженням, що важливо для системного адміністрування багатокористувацьких серверів оболонки; він може надати користувачам попереднє повідомлення про час простою.
Таким чином, команду відключення потрібно використовувати так, щоб негайно зупинити / вимкнути комп'ютер (як мінімум на Linux та FreeBSD):
shutdown -h now
Або перезавантажити його за допомогою спеціального попереднього попередження за 30 хвилин:
shutdown -r +30 "Planned software upgrades"
Після затримки shutdownповідомляє initпро зміну до рівня запуску 0 (зупинка) або 6 (перезавантаження). (Зауважте, що пропуск -hабо -rпризведе до того, що система перейде в режим однокористувача (runlevel 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 XENIX haltsys.)
BSD haltі rebootкоманди були низькорівневими, різкими і негайними. Уважним чином , щоб вимкнути систему BSD була shutdownкоманда, яка зробила все те , що один очікує траплятися: wallповідомлення для користувачів, послуги витончено убитий, записи , написані лаг, логіни відключені, і так далі.
У той час як BSD були значною мірою там, де отримана мудрість походить " shutdownexecs halt/ 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та пов'язані з ними інструменти, які зараз люди називають «Система 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, як я помітив на сторінці керівництва для Nosh halt, fasthalt, reboot, fastboot, і poweroffкоманди. ☺
halt, reboot, poweroff, telinit, І shutdownце все одна програма . Це насправді власна systemctlпрограма systemd . У ньому є кілька аналізаторів командного рядка для різних синтаксисів командних рядків цих команд, а також їх власних, але після цього значною мірою перетворюється на один шлях коду всередині. Немає різниці між використанням haltта його командними параметрами для запуску дії та використанням shutdownта параметрами її команд для запуску тієї самої дії.
systemd не вважає режим порятунку (саме те, що систематизовані люди перейменували в режим єдиного користувача ), не працює в режимі вимкнення, і він не доступний жодній із цих команд. Без варіантів shutdown now- те саме, що poweroff.
BSD значною мірою зберігають свою семантику 1980-х років. haltі shutdown, отже, дуже не еквівалентні у своїх наборах інструментів. haltі rebootє однією єдиною програмою; і все ще низький рівень, негайний і різкий. Беручи під увагу , shutdownі poweroff, також однієї програми, зробити все благорассудітельние речі , як заплановане вимкнення, написання wallповідомлень, протоколювання дій, виводячи з ладу входу, і так далі.
У наборах інструментів BSD shutdown/ poweroffтрадиційно закінчується викликом halt/ rebootдля прийняття остаточної зміни стану системи. (Часто в даний час некоректне) отримав мудрість, що " shutdownexecs halt/ 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 управління системою набору інструментів, halt, fasthalt, poweroff, fastpoweroff, reboot, і fastbootвсе одна програма. Це зворотний хід сумісності, який зазвичай просто прив’язується до нього shutdown, протилежний отриманій мудрості. --forceВаріант робить ланцюг system-controlзамість цього.
Таким чином, --forceміж цією haltкомандою та shutdownкомандою (з еквівалентною опцією) у цьому наборі інструментів немає різниці (відсутня ) , оскільки цей набір команд "сумісність BSD / System 5" - це просто тонкий прошарок у верхній частині shutdown.
shutdown. сторінки з набором інструментів для набору інструментів. Програмне забезпечення.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, … сторінки з набором інструментів для набору інструментів. Програмне забезпечення.Як і у випадку з 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.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 «привал» і «перезавантаження» є псевдонімами команди виключення - shutdown -hі shutdown -rвідповідно. Відключення Bareword зазвичай передбачає -h.
aliasesв сенсі псевдонімів оболонки, але так, в haltосновному це лише дзвінки shutdown -hта rebootзапуски shutdown -r. Зауважте, що якщо ви передаєте -fпараметр (сила) до haltабо reboot, не викликається. shutdown
sendmailкоманди до цього моменту - Як і у MTA, це насправді не має значення, яку систему init ви використовуєте, тому що всі вони розпізнають shutdownі haltяк таку.
sendmailкоманді. Це як sendmailкоманда, але не так, як ви думаєте.