В современных дистрибутивах Linux (начиная с Debian 8, Ubuntu 16.04, CentOS 7) в качестве системы инициализации используется Systemd. Systemd запускается при старте сервера (после загрузки ядра) и инициализирует службы, необходимые для работы сервера и системы.
Systemd содержит инструмент systemctl, который позволяет пользователю управлять работой служб в фоне: запускать и останавливать их, проверять состояние, обновлять конфигурацию и т.д.
Ниже мы рассмотрим основные варианты применения systemctl.
Синтаксис при использовании systemctl следующий:
Просмотр списка служб
Вывести список всех запущенных служб:
Вывести список только программ (сервисов), без дополнительных системных компонентов:
Вывести список всех сервисов (не только запущенных):
Вывести список только выполняющихся сервисов:
Управление состоянием службы
Рассмотрим основные команды systemctl на примере службы Nginx.
Посмотреть состояние службы:
Запустить службу:
Остановить службу:
Обновить конфигурацию без перезапуска службы (отработает только в случае, если сама служба поддерживает такую возможность):
Перезапустить службу (если служба не была запущена, она запустится этой командой):
Обновить конфигурацию без перезапуска, если есть такая возможность; в противном случае перезапустить службу:
Перезапустить службу, только если она уже запущена:
Проверить, запущена ли служба:
Проверить, не завершилась ли работа службы с ошибкой:
Управление автозагрузкой
Добавить службу в автозагрузку:
Удалить из автозагрузки:
Проверить, добавлена ли служба в автозагрузку:
Удалить из автозагрузки и снова добавить:
Восстановить параметры автозагрузки по умолчанию: