В этой статье нас интересуют только модули, которые имеют суффикс .service, то есть службы.
Благодаря утилите systemctl список сервисов легко получить:
systemctl list-units --type=service
Для работы с большинством служб мы можем не использовать суффикс .service
, потому что диспетчер systemd сам понимает, что вы хотите работать именно со службой, когда не указываете специфический юнит.
Запуск и остановка служб
Чтобы запустить службу используйте команду start
. Например, для запуска apache2 выполним:
sudo systemctl start apache2.sevice
или
sudo systemctl start apache2
Для установки службы нужно использовать команду stop
. На примере apache2:
sudo systemctl stop apache2.service
Перезапуск и перезагрузка
Для того, чтобы перезапустить службу, используйте команду restart
. Например, мы внесли изменения в конфигурацию веб-сервера и теперь нам нужно перезапустить apache2, нужно выполнить:
sudo systemctl restart apache2.service
Некоторые приложения поддерживают перезагрузку файлов конфигурации без перезапуска всей службы. В таком случае вы можете использовать команду reload. Например, если вы работаете c nginx в качестве веб-сервера, после изменения конфигурационных файлов можно выполнить reload
:
sudo systemctl reload nginx.service
Но если вы не уверены, умеет ли служба перезагружать конфигурацию, воспользуйтесь командой reload-or-restart
. В таком случае systemd перезагрузит конфигурацию или всю службу:
sudo systemctl reload-or-restart apache2.service
Включение и отключение
Основное предназначение диспетчера systemd — запускать службы при загрузке системы. Но все команды, перечисленные выше, относились к работе только во время текущего сеанса.
Чтобы включить автозагрузку приложения, воспользуйтесь командой enable
. После этого systemd создаст символическую ссылку из служебного файла — /etc/systemd/system
— в место, где диспетчер ищет приложения для автозапуска.
sudo systemctl enable apache2.service
Чтобы отключить автозапуск, используйте disable
. При этом символическая ссылка будет удалена.
sudo systemctl disable apache2.service
Обратите внимание, что ни включение, ни отключение автозагрузки приложения не повлияют на работу службы в текущем сеансе.
Проверка статуса
Чтобы проверить статус службы в системе, нужно использовать команду status
.
Например, команда sudo systemctl status apache2.service
отобразит статус, процессы в иерархии контрольных групп и фрагмент журнала.
Этого достаточно для того, чтобы проверить, корректно ли работает служба и устранить проблемы, если они возникают.
Помимо развёрнутого отчёта о статусе службы диспетчер systemd также предоставляет методы для проверки конкретных статусов. Это позволяет обернуть множество проверок в скрипты и проще работать с результатом.
- is-active. Проверяет, активен ли модуль. Возвращает active или inactive.
- is-enabled. Проверяет, включена ли автозагрузка службы. Возвращает enabled или disabled.
- is-failed. Проверяет, находится ли юнит в работе. Возвращает active, если всё работает корректно, failed — если ошибка. При этом вы можете получить также unknown или inactive, если служба была остановлена вручную.
Комментариев нет:
Отправить комментарий