Короткий ответ
Unit-файл — декларативное описание сервиса или другого управляемого объекта (таймера, точки монтирования) в формате INI-подобного файла с секциями [Unit], [Service], [Install]; базовые команды — systemctl start/stop/restart/status/enable/disable unit.
Как это работает подробнее
systemd читает unit-файлы из стандартных каталогов (/etc/systemd/system, /usr/lib/systemd/system), строит граф зависимостей между юнитами и управляет их жизненным циклом: запуском, перезапуском при сбое, остановкой в правильном порядке при завершении работы системы.
Пример кода
commands.sh
systemctl status nginx
systemctl enable --now nginx
systemctl daemon-reloadЧто использовать на практике
- Практика. start/stop/restart управляют текущим состоянием процесса здесь и сейчас, а enable/disable управляют тем, запустится ли сервис автоматически при загрузке системы — это разные, независимые друг от друга действия, которые часто путают.
Подводные камни
- Риск. Частая ошибка — выполнить только systemctl start после правки unit-файла, забыв про systemctl daemon-reload, из-за чего systemd продолжает использовать старую закэшированную версию конфигурации юнита.