Гид по технологиям

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

8 min read Linux команды Обновлено 27 Dec 2025
Как безопасно выключить или перезагрузить Linux
Как безопасно выключить или перезагрузить Linux

Ноутбук с Linux, полностью выключенный.

Быстрые ссылки

  • Что за команды выключения есть в Linux?

  • Что стоит за этим (systemd и совместимость)?

  • Как пользоваться shutdown в Linux

  • Команды reboot, halt и poweroff

  • Какая команда мне подходит?

Краткое резюме

  • Linux и macOS предлагают команды shutdown, reboot, halt и poweroff для безопасного выключения или перезапуска системы из командной строки.
  • На дистрибутивах с systemd эти команды чаще всего являются ссылками на systemctl, что обеспечивает совместимость со старым System V init.
  • Команда shutdown позволяет запланировать выключение/перезагрузку, отправить предупреждение вошедшим пользователям и отменить запланированное действие.

Важно: перед выполнением операций на многопользовательской системе предупредите людей и корректно завершите важные процессы.

Что за команды выключения есть в Linux?

Иногда нужно либо перезагрузить систему, либо полностью её выключить. На серверах без GUI или при работе по SSH командная строка — единственный способ. В Unix-подобных системах (включая macOS) есть несколько команд для выключения и перезагрузки:

  • shutdown
  • reboot
  • halt
  • poweroff

При чтении man-страниц может показаться, что информации много и она повторяется. В действительности страницы для reboot, halt и poweroff зачастую содержат одинаковые сведения: поведение может меняться в зависимости от опций, которые вы укажете, и от того, какая система инициализации используется.

Страница man для команды halt.

Что стоит за этим?

Ключ в том, что многие современные дистрибутивы Linux используют systemd вместо классического System V init. Fedora начала использовать systemd в 2011 году; Debian и Ubuntu перешли на systemd в 2015 году. На systemd-системах команды shutdown, reboot, halt и poweroff часто являются алиасами или ссылками на systemctl. Это оставляет совместимость со старыми скриптами и привычками администраторов.

Коротко: systemctl — «единая» точка управления состояниями системы, а прежние команды остались как удобные интерфейсы поверх неё.

Как пользоваться shutdown в Linux

Перед тем как выключить или перезапустить многопользовательскую систему, спланируйте действие. Выберите время, предупредите пользователей и убедитесь, что критичные процессы завершатся корректно.

Требования: чтобы выполнить большинство операций, вы должны иметь права суперпользователя (sudo). Если команда отклонена, попробуйте выполнить её с sudo.

По умолчанию shutdown корректно останавливает процессы, синхронизирует файловые системы и переводит машину в состояние halt, после чего отправляет сигнал оборудованию на отключение питания (poweroff).

Пример: запланируем выключение через 15 минут и отправим сообщение вошедшим пользователям.

shutdown +15 Выключение через 15 минут — сохраните работу.

Пояснения:

  • +15 означает «через 15 минут» (плюс можно опустить).
  • Можно указать абсолютное время в формате 24-часового HH:MM, например 23:00.
  • Если время не задано, shutdown по умолчанию запланирует действие через минуту.
  • Используйте now или +0 для немедленного выполнения.

Пример отмены запланированного выключения:

shutdown -c

Хотя команда не выводит подтверждение в консоль, всем вошедшим пользователям придёт уведомление об отмене.

Если вы не указали строку времени, вы не можете передать сообщение пользователям. Также за пять минут до выключения система прекращает новые логины.

Опции shutdown, которые часто используются:

  • -H — привести систему в состояние halt, но не посылать сигнал на отключение питания (аппаратное питание остаётся включённым).
  • -P — poweroff; это поведение по умолчанию: завершение работы и отключение питания.
  • -r — перезагрузить систему после корректного останова.
  • -h — часто эквивалентно -P (halt + poweroff); при совместном использовании -H превосходит -h.
  • -c — отмена ранее запланированного shutdown/reboot/halt.

Пример запланированной перезагрузки:

shutdown -r 08:20 Плановая перезагрузка в 08:20

Команды reboot, halt и poweroff

Эти команды выполняют то, что подразумевает их название: reboot перезагружает, poweroff выключает, halt ставит систему в состояние halt. Однако у каждой команды есть опции, которые позволяют ей выполнить альтернативное действие (например, reboot может заставить систему остановиться). Поэтому лучше использовать команду по назначению, чтобы не путаться.

Примеры немедленного выполнения:

reboot
halt
poweroff

Если команда отклонена, попробуйте запустить её с sudo. Частая причина отказа — наличие других пользователей в системе.

Какая команда мне подходит?

  • На многопользовательских и production-системах используйте shutdown. Она даёт контроль: можно запланировать время, оповестить пользователей и отменить действие.
  • На рабочей станции, где вы единственный пользователь, достаточно reboot или poweroff для немедленного выполнения.

Ниже — практические рекомендации и готовые чек-листы для разных ролей.

Чек-листы по ролям

Администратор (сервер):

  • Проверить активные сессии: who, w или users.
  • Уведомить пользователей с помощью wall или встроенного сообщения в shutdown.
  • Остановить критические сервисы (БД, брокеры сообщений) в правильном порядке.
  • Создать бэкап конфигураций и данных при необходимости.
  • Запускать shutdown с sudo и логировать причину (в ticketing/описании интервенции).
  • После выключения проверить физический доступ и питание.

Обычный пользователь (стационарный ПК или ноутбук):

  • Сохранить работу и закрыть приложения.
  • При необходимости уведомить коллег через мессенджер.
  • Выполнить poweroff или reboot (с sudo при необходимости).

SOP: пошаговая методика для планового отключения сервера

  1. Оповестите команду и пользователей не позднее, чем за 15–60 минут (в зависимости от SLA).
  2. Проверьте активные сессии и процессы: who, ss, ps aux | grep <важный сервис>.
  3. Остановите сервисы в порядке критичности (например, systemctl stop postgresql.service).
  4. Проверьте состояние файловой системы: df -h, mount, journalctl -u .
  5. Запланируйте shutdown: shutdown +10 Плановая техническая работа.
  6. Подтвердите получение уведомления у пользователей.
  7. По завершении проверки отмените shutdown, если нужно: shutdown -c.
  8. При выполнении отключения — задокументируйте время и результаты.

Инцидентный план и откат

Сценарий: вы запланировали выключение, но оно мешает работе критичных пользователей.

Действия:

  • Выполните отмену: shutdown -c.
  • Проверьте, какие процессы и пользователи были активны: who, last, journalctl.
  • При необходимости выполните мягкую перезагрузку отдельных сервисов вместо полной остановки.
  • Документируйте причину и обсудите корректную временную рамку для повторного планирования.

Ментальные модели и эвристики

  • «Halt — останов, poweroff — останов с отключением питания, reboot — останов с последующим запуском» — хорошая базовая модель.
  • В многопользовательском окружении всегда думайте как администратор: предупреди, сохрани, синхронизируй.
  • Если действие влияет на сеть или сервисы, рассматривайте возможность graceful shutdown (остановка сервисов) вместо немедленного poweroff.

Альтернативные подходы

  • Использование systemctl напрямую:
sudo systemctl poweroff
sudo systemctl reboot
sudo systemctl halt

systemctl даёт более гибкий контроль над целевыми состояниями (targets), например systemctl isolate rescue.target.

  • Планирование через cron или at для одноразовых задач.
  • Управление питанием на уровне виртуальной инфраструктуры (например, команда выключения через API гипервизора) для облачных/виртуальных машин.

Совместимость: systemd vs System V init

  • На systemd-системах старые команды остались ради совместимости и фактически делегируют работу systemctl.
  • На старых системах без systemd команды shutdown/reboot/halt реализуют логику напрямую через SysV-инструменты.
  • При написании скриптов для широкого круга дистрибутивов проверяйте наличие systemctl и применяйте условную логику:
if command -v systemctl >/dev/null 2>&1; then
  systemctl poweroff
else
  shutdown -h now
fi

Критерии приёмки

  • Все пользователи получили уведомление о планируемом выключении.
  • Критические сервисы остановлены корректно и без ошибок в логах.
  • Файловые системы смонтированы корректно и в состоянии, позволяющем безопасный старт после включения.
  • Документация: причина, время, результат операции.

Тестовые случаи и приёмо-сдаточные критерии

  • Плановое выключение: запланировать shutdown +2 и убедиться, что система выключается ровно через 2 минуты и пользователи получают сообщение.
  • Отмена: выполнить shutdown +5, затем shutdown -c и подтвердить, что отключение отменено и пользователи уведомлены.
  • Права: попытка выполнения reboot без sudo должна быть отклонена на многопользовательской системе.

Таблица совместимости и советы по миграции

  • Fedora: systemd с 2011.
  • Debian/Ubuntu: systemd с 2015.
  • Сценарий миграции: замените прямые вызовы system V-скриптов на абстракции через systemctl или добавьте проверку наличия systemctl в ваших скриптах.

Справочная карточка: что запомнить

  • Формат времени для shutdown: HH:MM (24-часовой).
  • +N или +NN означает «через N минут»; +0 или now — немедленно.
  • Без указания времени shutdown по умолчанию запланирует действие через 1 минуту.
  • -c отменяет запланированный shutdown.

Примеры команд и шаблоны

  • Немедленный reboot:
sudo reboot
  • Немедленное выключение:
sudo poweroff
  • Запланированная перезагрузка с сообщением:
sudo shutdown -r 03:00 Плановая перезагрузка — ожидайте 5 минут простоя
  • Отмена запланированного выключения:
sudo shutdown -c

Глоссарий в одну строку

  • systemd — современная система инициализации и менеджер сервисов в Linux; systemctl — её интерфейс управления.
  • System V init — устаревшая система инициализации, использовавшая скрипты /etc/init.d.

Факто-бокс

  • systemd внедрялся в основных дистрибутивах начиная с Fedora в 2011 году; Debian и Ubuntu перешли на systemd в 2015 году.
  • Поведение shutdown: по умолчанию — через 1 минуту, +0/now — немедленное действие.

Решающее дерево для выбора команды

flowchart TD
  A[Нужно выключить/перезагрузить?] --> B{Многопользовательская система?}
  B -- Да --> C[Используйте shutdown для планирования и уведомлений]
  B -- Нет --> D{Моментально или планово?}
  D -- Моментально --> E{Перезагрузка или выключение?}
  E -- Перезагрузка --> F[reboot]
  E -- Выключение --> G[poweroff]
  D -- Планово --> C
  C --> H[Не забудьте уведомить пользователей и остановить сервисы]

Когда это не сработает (ограничения и подводные камни)

  • Если процесс блокирует остановку (например, аппаратный драйвер или зависший модуль), shutdown может завершиться неудачей или ждать таймаутов.
  • На виртуальной машине поведение poweroff может зависеть от гипервизора; иногда требуется использовать интерфейс гипервизора.
  • Если у пользователя нет прав sudo, команды вернут ошибку; автоматизированные процессы должны учитывать привилегии.

Локальные замечания для русскоязычных администраторов

  • В корпоративных средах в России часто используют инструменты мониторинга и оркестрации (Ansible, Salt), чтобы централизованно управлять выключениями; используйте модульные playbook’и, чтобы не допустить деструктивных массовых отключений.

Короткий анонс (для рассылки, 100–200 слов)

Нужна быстрая инструкция по безопасному выключению или перезагрузке Linux-сервера? В статье объясняются команды shutdown, reboot, halt и poweroff, а также как systemd влияет на их поведение. Вы узнаете, как запланировать отключение, уведомить пользователей, отменить запланированные действия и какие шаги предпринять перед выключением сервера. Приведены чек-листы для администратора и обычного пользователя, SOP для плановой остановки, инцидентный план отката и готовые примеры команд. Особенно полезно для тех, кто работает по SSH или управляет GUI-less серверами.

Итог

Используйте shutdown для контролируемых, плановых операций с уведомлениями. Для простых, однопользовательских задач достаточно reboot или poweroff. Всегда проверяйте привилегии, предупреждайте других пользователей и корректно останавливайте критичные сервисы перед массовыми операциями.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Зелёный экран в CapCut: как использовать наложения
Видеомонтаж

Зелёный экран в CapCut: как использовать наложения

Как включить множественный вход в Google
Руководство Google

Как включить множественный вход в Google

Автоматическая очистка Корзины в Windows
ОС Windows

Автоматическая очистка Корзины в Windows

Настройка почты в Thunderbird — Gmail, Exchange, IMAP/POP
Почта

Настройка почты в Thunderbird — Gmail, Exchange, IMAP/POP

Как добавить и переключать раскладки клавиатуры в Linux
Linux

Как добавить и переключать раскладки клавиатуры в Linux

Разблокировать и отформатировать внешний диск на Mac
Mac

Разблокировать и отформатировать внешний диск на Mac