Выключение и перезагрузка Linux

Казалось бы, что может быть проще? Всего-то — выключить или перезапустить сервер под управлением Linux. Для выключения достаточно ввести команду

sudo shutdown -h now

Для перезагрузки

sudo shutdown -r now

Или

sudo reboot

Данные мероприятия даже в техническом отношении (не касаясь сопутствующих организационных моментов) только на первый взгляд могут показаться простыми. Но опытные системные администраторы знают, что для любой ОС даже штатный и корректный перезапуск может повлечь негативные последствия. Во многом это связано с качеством предшествующих перезапуску технического обслуживания и эксплуатации. Поэтому нужно понимать, что самые обычные перезагрузка или выключение Linux. Без преувеличения являются достаточно ответственными действиями.И об этом администраторам всегда необходимо помнить.

Перезагрузка и остановка системы — почему это так важно?

ОС Linux доверяют работу, которая должна обеспечивать долговременное и надёжное функционирование сложных агрегатов, технологических установок, серверов баз данных (БД), веб-серверов и т.д.. Которыми пользуется большое количество пользователей, операторов и обслуживающего персонала. Выключение и перезапуск неизбежны для любой системы. Но данные мероприятия должны осуществляться с минимальными рисками. Как для выполняемых серверами задач, так и для пользователей.

Когда-то UNIX и Linux были довольно чувствительны перезапускам. Но с появлением высоконадёжных журналируемых файловых систем (ФС) выполнять остановку или перезапуск стало гораздо безопаснее. Однако вероятность повреждения конфигурации или самой ОС  при некорректном выключении компьютера (или сервера) полностью не исключена. Например нештатное завершение работы серверов БД очень часто приводит к нарушению целостности данных и повреждению таблиц. Не важно какая при этом система управления БД (СУБД) используется для их обслуживания. Проблемы, которые возникают в Linux, как правило, довольно сложно выявляемые. Потому как архитектурные особенности самого Linux позволяют функционировать даже при наличии сложных коллизий. Но когда приходит время перезапуска ОС, то часто эти скрытые проблемы тут же проявляются. Что нередко сопровождается крахом.

Опытные системные администраторы знают, что когда в систему вносятся какие-либо изменения, например модифицируется сценарии запуска, конфигурация отдельных компонентов и т. п., то очень желательно проводить перезапуск, чтобы удостовериться, что после данных изменений система работает нормально. Ну и обязательно проверить журналы регистрации (логи), чтобы не пропустить появление скрытых и сложных проблем. При этом нужно помнить, что проблемы могут проявиться не сразу и даже не через пару недель — на это влияет очень много факторов и всё зависит от конкретной ситуации.

Команда shutdown

Эта команда позволяет безопасно и технически «правильно» произвести перезапуск, остановку ОС или перевести её в однопользовательский режим. Для разных систем команда shutdown имеет различную спецификацию, касающуюся синтаксиса и опций, поэтому разумно рассмотреть её в общих чертах, затронув лишь некоторые особенности использования.

Поскольку, такие мероприятия как перезапуск и выключение часто затрагивают многих пользователей, системным администраторам необходимо иметь возможность предупреждать их об этих действиях заранее прежде чем они будут выполнены. Команда shutdown позволяет это сделать, добавляя пузу, во время которой пользователям отправляются сообщения о предстоящем событии (выключение или перезапуск). Отправка этих сообщений по-умолчанию повторяется через укорачивающиеся интервалы времени и содержат текст о характере предстоящего события, для которого также указывается оставшееся время. Администратор может задать произвольный текст сообщения, если это будет нужно в зависимости от ситуации. Естественно, после выполнения shutdown пользователи не смогут входить в систему, но всё это время они будут видеть информационное сообщение, данное через команду shutdown.

Характер выполняемого действия shutdown задаётся через параметры и таковыми могут быть:

  • нормальный остановка;
  • нормальный остановка с последующим автоматическим запуском (перезагрузка);
  • переход в однопользовательский режим;
  • некоторые другие сопутствующие действия (в зависимости от системы), например проверка устройств хранения командой fsck.

В последнем случае проверка fsck может быть принудительной, т. к. по-умолчанию в современных ОС данная проверка проводится автоматически при запуске только в случае некорректного демонтирования файловых систем.

В следующей таблице приведены основные опции shutdown для некоторых систем Linux:

Система Путь R H S F
Linux /sbin/shutdown -r -h -f
Solaris /usr/sbin/shutdown -i6 -i0 -iS
HP-UX /etc/shutdown -r -h
AIX /sbin/shutdown -r -h -m

Для данной системы используются следующие обозначения: R – перезапуск, H – нормальная остановка, S – продолжение работы в однопользовательском режиме, F – запретить проверку fsck (актуально только для SUSE и Red Hat).

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

$ sudo shutdown -h 08:30 "Внимание! С 08:30 до 13:00 Проводятся регламентные работы. Приносим извинения за неудобства."

Если нужно задать относительное время для остановки/перезапуска:

$ sudo shutdown -h +30 "Внимание! Проводятся регламентные работы."

Команды halt и reboot

Эти команды стоит рассмотреть в контексте того, что они хоть и могут использоваться независимо сами по себе, но, как правило вызываются всё той же командой shutdown.

При вызове halt выполняются все основные действия, необходимые для нормального выключения ОС. Так например, сначала выполняется завершение всех некритичных процессов, в журнал регистрации заносится сообщение о выключении, далее производится выполнение системного вызова sync и ожидание освобождения устройств хранения от операций записи. Затем останавливается работа системного ядра.

Одной из важных опций halt является ключ -n. Он запрещает использование системный вызов sync для того, чтобы ядро не восстанавливало «старые» образы корневого раздела, хранящиеся в его кеше. Другими словами, halt -n используется после того, как был восстановлен раздел при помощи fsck.

Команда reboot отличается от halt лишь тем, что производит перезапуск по-умолчанию. Однако её можно использовать для выполнения некоторых полезных действий перед перезагрузкой системы. Например, можно не отправлять сообщения о предстоящей перезагрузке (стоит заметить, что далеко не всегда это бывает полезным…) пользователям используя ключ —no-wall. Если необходимо просто внести запись о событии в файл /var/log/wtmp (этот файл регистрирует все события входа и выхода в ОС), то нужно воспользоваться ключом -w (или —wtmp-only), при этом перезагрузки не произойдёт. Для выполнения перезагрузки без внесения записей в файл /var/log/wtmp, существует ключ -d (или —no-wtmp). Также при помощи команды reboot возможно выполнять остановку системы и выключение машины, используя ключи —halt и -p (—poweroff) соответственно. Для принудительной и немедленной перезагрузки используется ключ -f (—force). В большинстве систем все ключи, описанные для команды reboot применяются и для команды halt с тем же значением.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: