Linux

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 и посмотреть журнал.

Материал предназначен для общего технического понимания. Конкретная конфигурация зависит от платформы, версии ПО и требований среды.