systemd: как Linux запускает и контролирует сервисы
Units, dependencies, restart policy, journal и различие reload/restart.
systemd управляет загрузкой системы и жизненным циклом сервисов во многих современных Linux-дистрибутивах. Основной объект systemd называется unit. Это может быть service, socket, timer, mount, target и другие типы.
Service unit
Файл .service описывает, какую программу запускать, от каких компонентов она зависит и что делать при завершении процесса.
Например, политика Restart=on-failure позволяет автоматически перезапустить приложение после аварийного выхода, но не обязательно после штатной остановки администратором.
enable и start — не одно и то же
systemctl start service запускает сервис сейчас. systemctl enable service настраивает его автоматический запуск после следующей загрузки. Часто используют systemctl enable --now service, чтобы сделать оба действия.
restart и reload
restart полностью останавливает и запускает процесс заново. reload просит приложение перечитать конфигурацию без полного перезапуска, но поддерживается не каждым сервисом.
Журнал
События unit доступны через journalctl -u service. Можно добавить --since today, -f или ограничить количество строк.
Практический вывод
При изменении системного сервиса полезно разделять четыре действия: проверить конфигурацию приложения, применить её, убедиться в состоянии unit и посмотреть журнал.