В современных дистрибутивах Linux (начиная с Debian 8, Ubuntu 16.04, CentOS 7) в качестве системы инициализации используется Systemd
. Systemd запускается при старте сервера (после загрузки ядра) и инициализирует службы, необходимые для работы сервера и системы.
Systemd содержит инструмент systemctl
, который позволяет пользователю управлять работой служб в фоне: запускать и останавливать их, проверять состояние, обновлять конфигурацию и т.д.
Ниже мы рассмотрим основные варианты применения systemctl
.
Синтаксис при использовании systemctl
следующий:
systemctl команда служба
Вывести список всех запущенных служб:
systemctl list-units
Вывести список только программ (сервисов), без дополнительных системных компонентов:
systemctl list-units -t service
Вывести список всех сервисов (не только запущенных):
systemctl list-units -t service --all
Вывести список только выполняющихся сервисов:
systemctl list-units -t service --state running
Рассмотрим основные команды systemctl
на примере службы Nginx.
Посмотреть состояние службы:
systemctl status nginx
Запустить службу:
systemctl start nginx
Остановить службу:
systemctl stop nginx
Обновить конфигурацию без перезапуска службы (отработает только в случае, если сама служба поддерживает такую возможность):
systemctl reload nginx
Перезапустить службу (если служба не была запущена, она запустится этой командой):
systemctl restart nginx
Обновить конфигурацию без перезапуска, если есть такая возможность; в противном случае перезапустить службу:
systemctl reload-or-restart nginx
Перезапустить службу, только если она уже запущена:
systemctl try-restart nginx
Проверить, запущена ли служба:
systemctl is-active nginx
Проверить, не завершилась ли работа службы с ошибкой:
systemctl is-failed nginx
Добавить службу в автозагрузку:
systemctl enable nginx
Удалить из автозагрузки:
systemctl disable nginx
Проверить, добавлена ли служба в автозагрузку:
systemctl is-enabled nginx
Удалить из автозагрузки и снова добавить:
systemctl reenable nginx
Восстановить параметры автозагрузки по умолчанию:
systemctl preset nginx