Як правильно відключити або перезавантажити сервер Unix / Linux


11

Який правильний спосіб вимкнути сервер Unix / Linux?

З мого googling я дізнався (сподіваюся) наступне:

завершення роботи : я повинен використовувати це з параметром -h для зупинки або параметром -r для перезавантаження

зупинка : зупиняє комп'ютер (зупиняє процесор? Це фізично вимикає живлення комп'ютера?). Я думаю, це призведе до вимкнення, якщо не в init0, інакше просто зупиниться.

перезавантажте : якщо не в init6, виклик відключення, інакше просто перезавантажте комп'ютер.

якщо все правильно, то єдине, що я не можу зрозуміти, це те, що саме робить «зупинка». Це просто зупиняє процесор, але не вимикає комп'ютер фізично? Як я "живлю" комп'ютер?

Спасибі

Відповіді:


13

shutdown -h nowвимкне комп'ютер у більшості систем, але це залишається до реалізації. Використовуйте -Pдля живлення напевно та -Hдля припинення точно. Це метод, який я рекомендував би вимкнути систему. Він запустить усі належні сценарії.

haltбез того, -fяк тільки зателефонувати вищезазначене закриття, і так буде reboot, вони в основному просто псевдоніми.


Я зараз великий фанат / sbin / shutdown -h (-r). використання "зупинки" мене завжди лякало.
RateControl

1
Торо робить ще один сприятливий момент: вам слід спробувати створити звичку викликати важливі системні команди з явним шляхом (наприклад, / sbin / shutdown). Це може врятувати вас, якщо ваша система коли-небудь порушена, і ви про це не знаєте.
Райан Фішер

1
містикфіш: Домовились, збираюся прийняти цю звичку. Хоча у нього є хороший момент, я не знаю, чи довіряв би я його порадам щодо ІТ, якщо він проводить весь час в кабіні в одній кімнаті без електрики.
Кайл Брандт

Це був би поганий компроміс, якби він не змінив виконуваний файл у шляху, який вписаний у твої пальці, хоча ...
asjo

@Kyle Brandt, приємно.
Джозеф Керн

3

У Linux, я завжди використовував rebootі halt, хоча я знаю людей , які знаходять haltстрашно. halt(8)начебто говорить, чому:

У старих випусках sysvinit перезавантаження та зупинка ніколи не повинні викликатися безпосередньо. З випуску 2.74 при зупинці та перезавантаженні виклику вимкнення (8), якщо система не знаходиться у рівні запуску 0 або 6. Це означає, що при зупинці чи перезавантаженні неможливо дізнатися поточний рівень запуску (наприклад, коли / var / run / utmp не має ініціалізовано правильно) буде викликано закриття, яке може бути не таким, як ви хочете. Використовуйте прапор -f, якщо ви хочете зробити жорстку зупинку або перезавантажити.

sysvinit 2.74 датована 17-го березня 1998 21:53. :)

Що стосується вашого питання, як вимкнути живлення, ви можете використовувати poweroffабо halt -p. Нові системи Linux , здається, харчування вниз на просто haltабо shutdown -hж.


Соларіс все ще в натовпі, де «зупинка» робить страшні речі.
Карл Кацке

3

Я використовую halt- менше параметрів, щоб запам'ятати.

Хтось розробив віртуальну Molly Guard, щоб не випадково зупинити неправильний сервер. Це врятувало мене кілька разів. Він упакований в molly-guardUbuntu.


1
Якщо хтось цікавиться, як працює молі-охорона, ось ось приклад: guillaume.segu.in/blog/home/118/…
Марі Фішер

1

Я зазвичай використовую (як звичайний користувач):

 init 0

щоб привести систему до стану живлення. Це виконує сценарій завершення роботи.

 init 6

збити систему та автоматично її перезавантажити. Це також виконує сценарій завершення роботи.


1
halt також запустить усі підписи з параметром "стоп".
hayalci

1
За якою системою пристрій не зупиняється красиво?
asjo

2
На підставі двох вищезазначених коментарів я відредагував свою нотатку, щоб видалити призупинений коментар. Однак я перевірив на FreeBSD 7.2 і Solaris 10 5/2009 x86, виконуючи просту команду зупинки на цих двох системах, НЕ буде залучати стандартну послідовність перезавантаження. Однак, на Centos 5.3, OpenSUSe 11.1 та Fedora 11 команда halt DO DO залучає стандартну послідовність
перезавантаження

0

Варто зазначити тут:

Для вимкнення Solaris потрібно або "shutdown -y -i5 -g0", або "shutdown -y -i6 -g0" для перезавантаження. Halt або Reboot on Solaris слід використовувати лише тоді, коли допустимо не попереджувати або пільговий період до того, як ви почнете вимикати речі ... Це може спричинити загрозу з дисковими системами, якщо ви не відключите їх перед відключенням, y 'знаєте?

Найкраще прийняти процедури, які найкраще підходять до операційних систем, до яких ви торкаєтеся щодня, щоб випадково в 2 години ночі пальцями не піти на автопілоті.

Наприклад, ніколи не набирайте 'killall' в solaris, тоді як це досить поширена команда в Linux. Хоча 'pkill' працює однаково для обох.


0

Щоб негайно вимкнути його, введіть:

shutdown -h now 

і негайно вимкнути його та перезапустити:

shutdown -r now

1
Я вважаю це найкращою відповіддю, не знаю, чому заперечував.
Василь А
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.