Работа с службами в systemd
В современных дистрибутивах 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.
Для просмотра состояния службы 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