# systemctl - управление сервисами systemd _Команды · LinuxLab Knowledge Base_ **TL;DR:** `systemctl` - главный CLI для управления unit'ами systemd: сервисами, таймерами, маунтами, сокетами. Замена SysV-init/`service` на современных дистро. ## Базовый набор команд ```bash systemctl status nginx # текущее состояние unit'а + последние логи sudo systemctl start nginx # запустить sudo systemctl stop nginx # остановить (graceful: SIGTERM → SIGKILL через TimeoutStopSec) sudo systemctl restart nginx # = stop + start sudo systemctl reload nginx # послать [signals](/kb/signals.md) SIGHUP - перечитать конфиг без перезапуска sudo systemctl enable nginx # запускать при старте системы sudo systemctl disable nginx # не запускать при старте sudo systemctl enable --now nginx # enable + start одной командой ``` ## Просмотр ```bash systemctl # все loaded и active unit'ы systemctl list-units --type=service # только сервисы systemctl list-units --state=failed # упавшие systemctl list-unit-files # все известные unit'ы (включая disabled) systemctl is-active nginx # active / inactive / failed (для скриптов) systemctl is-enabled nginx # enabled / disabled ``` ## Дерево cgroup'ов ```bash systemctl status nginx # внизу - Tasks, Memory, CPU, и cgroup-путь systemd-cgtop # top-style вид по [cgroups](/kb/cgroups.md) systemd-cgls # дерево cgroup'ов ``` ## Где лежат unit-файлы - `/etc/systemd/system/` - твои локальные / dropin'ы (приоритет) - `/lib/systemd/system/` или `/usr/lib/systemd/system/` - от пакетов После редактирования: ```bash sudo systemctl daemon-reload # перечитать unit-файлы sudo systemctl restart # применить изменения ``` ## Override без правки оригинала ```bash sudo systemctl edit nginx # → откроет редактор для drop-in: /etc/systemd/system/nginx.service.d/override.conf # → ту же [Service]-секцию можно переопределить точечно ``` Это правильный путь - оригинальный unit пакета не трогаем. ## Остальные подкоманды ```bash systemctl list-timers # активные timer'ы (cron-replacement) systemctl reboot / poweroff # перезагрузка / выключение systemctl --user start foo # user-level systemd (per-user) systemctl mask # запретить ВООБЩЕ (даже зависимостями) ``` ## Связка с journalctl Логи - отдельный бинарь [cmd-journalctl](/kb/cmd-journalctl.md): ```bash journalctl -u nginx -f # tail логов конкретного unit'а journalctl -u nginx --since today ``` ## Команды ```bash systemctl status nginx ``` Карточка unit'а: state + последние 10 строк лога ```bash sudo systemctl enable --now nginx ``` Запустить и включить автозапуск одной командой ```bash systemctl list-units --state=failed ``` Все упавшие сервисы - частая первая команда диагностики ```bash sudo systemctl edit myapp ``` Открыть drop-in override без правки оригинала ```bash systemctl is-active nginx && echo OK ``` Скриптуемая проверка состояния (exit code 0/1) ## См. также - [systemd - init и менеджер сервисов](/kb/systemd.md) - [journalctl - журнал systemd](/kb/cmd-journalctl.md) - [cron и crontab - расписание задач](/kb/cmd-cron-crontab.md) - [ps - снимок процессов](/kb/cmd-ps.md) - [htop - интерактивный монитор процессов](/kb/cmd-htop.md) - [Автообновления безопасности (unattended-upgrades, dnf-automatic, livepatch)](/kb/unattended-upgrades.md)