Как правильно отключить или перезагрузить сервер Unix / Linux


11

Как правильно отключить сервер Unix / Linux?

Из моего поискового запроса я узнал (надеюсь) следующее:

shutdown : я должен использовать это с параметром -h для остановки или параметром -r для перезагрузки

halt : останавливает компьютер (останавливает процессор? физически ли это отключает питание компьютера?). Я думаю, что это вызовет завершение работы, если не в init0, иначе просто останавливается.

перезагрузка : если не в init6, вызывает завершение работы, в противном случае просто перезагружает компьютер.

если все это правильно, то единственное, что я не могу понять, это то, что делает «остановка». Это просто останавливает процессор, но не выключает компьютер физически? Как мне выключить компьютер?

Спасибо

Ответы:


13

shutdown -h nowбудет отключать компьютер с большинством систем, но это остается до реализации. Используйте -Pдля выключения питания наверняка и -Hдля остановки наверняка. Это метод, который я бы порекомендовал выключить систему. Он запустит все нужные сценарии.

haltбез -fвызова просто вызовите вышеупомянутое завершение работы и так будет reboot, они в основном просто псевдонимы.


Теперь я большой поклонник / sbin / shutdown -h (-r). использование "остановки" всегда пугало меня.
RateControl

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

1
mystikphish: Согласен, собираюсь принять эту привычку. Хотя у него есть хорошая точка зрения, я не знаю, буду ли я доверять его советам по ИТ в целом, если он будет проводить все свое время в одноместном номере без электричества.
Кайл Брандт

Это был бы плохой компромисс, если бы он не изменил исполняемый файл в пути, который укоренен в ваших пальцах, хотя ...
asjo

@ Кайл Брандт, хорошо.
Джозеф Керн

3

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

В старых версиях sysvinit перезагрузка и остановка никогда не должны вызываться напрямую. Начиная с версии 2.74 при остановке и перезагрузке вызывайте shutdown (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

Я обычно использую (как пользователь root):

 init 0

привести систему в выключенное состояние. Это выполняет краткое изложение сценариев.

 init 6

чтобы выключить систему и автоматически перезагрузить ее. Это также выполняет краткое изложение сценариев.


1
halt также запускает все initscripts с параметром «stop».
Hayalci

1
В какой системе остановка не завершается?
asjo

2
Основываясь на двух вышеупомянутых комментариях, я отредактировал свою заметку, чтобы удалить свой комментарий остановки. Тем не менее, я проверил на FreeBSD 7.2, и Solaris 10 5/2009 x86, выполняющий простую команду остановки в этих двух системах, НЕ задействует стандартную последовательность сокращений. Однако в Centos 5.3, OpenSUSe 11.1 и Fedora 11 команда остановки ДЕЙСТВИТЕЛЬНО включает стандартную последовательность
сокращений

0

Стоит отметить здесь:

Для выключения Solaris требуется либо «shutdown -y -i5 -g0», либо «shutdown -y -i6 -g0» для перезагрузки. Остановку или перезагрузку в Solaris следует использовать только в том случае, если допустимо не выдавать предупреждение или льготный период перед тем, как вы начнете выключать систему ... это может отразиться на дисковых системах, если вы не размонтируете их перед выключением, «знаете?

Лучше всего применять процедуры, которые лучше всего подходят для операционных систем, к которым вы ежедневно прикасаетесь, чтобы случайно не прикрутить что-либо в 2 часа ночи с помощью пальцев на автопилоте.

Например, никогда не вводите killall в солярисе, тогда как в linux это довольно распространенная команда. 'pkill' работает одинаково на обоих.


0

Чтобы немедленно отключить его, введите:

shutdown -h now 

и немедленно выключить его и перезапустить:

shutdown -r now

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