Управление
reload vs restart: reload просит службу перечитать конфиг (без даунтайма),
restart — полный перезапуск.
Основной интерфейс к systemd. enable включает автозапуск, start запускает сейчас — это разные операции.
systemctl status nginx --no-pager
состояние, без пейджера
sudo systemctl status nginx
+ последние строки журнала
systemctl start nginx
запустить сейчас
systemctl stop nginx
остановить сейчас
systemctl restart nginx
перезапустить (обрывает соединения)
systemctl enable --now nginx
включить автозапуск и запустить сразу
systemctl cat nginx --no-pager
unit-файл целиком
systemctl edit nginx
открыть drop-in override
sudo systemctl daemon-reload
перечитать юниты после правки
systemctl --failed
список упавших юнитов
sudo journalctl -xeu nginx
почему юнит упал
systemctl — основной интерфейс к systemd. Управляет жизненным циклом служб
и читает их состояние.
Ключевое различие двух понятий:
start/stop);enable/disable).Они независимы: служба может быть enabled, но не active (например, после сбоя).
systemctl status печатает состояние и последние строки журнала службы — но строки
журнала видны только с sudo или пользователю из групп adm и systemd-journal.
Длинный вывод systemctl открывает в пейджере less (q — выход); --no-pager
печатает его сразу в терминал.
enable и start — независимые операции: enable только прописывает юнит в
автозапуск, службу текущего сеанса это не трогает, поэтому после enable без
--now служба остаётся неактивной до перезагрузки или явного start. Верно и
обратное: start без enable не переживёт перезагрузку.
| Ключ | Что делает | Пример |
|---|---|---|
--now |
Вместе с enable/disable сразу выполняет start/stop. | systemctl enable --now nginx |
--failed |
Показать только юниты в состоянии failed. | systemctl --failed |
--quiet |
Без вывода; для скриптов, которые смотрят код возврата. | systemctl is-active --quiet nginx |
--user |
Управлять пользовательскими службами текущей сессии, без sudo. | systemctl --user status pipewire |
-l --full |
Не обрезать длинные строки статуса и журнала. | systemctl status -l nginx |
--no-pager |
Вывести без интерактивного пейджера; удобно в скриптах и логах. | systemctl status nginx --no-pager |
-H --host host |
Управлять юнитами на другом хосте по SSH. | systemctl -H user@host status nginx |
Ничего не найдено. Попробуй запрос короче.
reload vs restart: reload просит службу перечитать конфиг (без даунтайма),
restart — полный перезапуск.
edit создаёт drop-in в /etc/systemd/system/<unit>.d/override.conf — пакетный
юнит не трогается, апдейты его не затрут.
is-active врёт после ручного запуска бинарникаsystemctl видит только то, что запущено им самим. Запускай через systemctl start,
не вручную.
После правки .service нужен sudo systemctl daemon-reload, затем restart.
Если правил пакетный юнит руками — используй systemctl edit (drop-in).
Смотри Type= в юните и journalctl -xeu <unit>: часто неверный Type=notify без
сигнала готовности или зависший ExecStart.
sudo systemctl status -l --no-pager <unit> + sudo journalctl -u <unit> -b
(за текущую загрузку).
systemctl reset-failed <unit> сбрасывает счётчик рестартов (после починки).
systemctl status показал состояние службы, но без строк журнала. Журнал служб
читают root и группы adm и systemd-journal, у обычного пользователя их нет.
Запусти с правами: sudo systemctl status nginx --no-pager или
sudo journalctl -u nginx -n 20. Постоянно — членство в группе:
sudo usermod -aG systemd-journal имя (действует после нового входа, см. usermod).
Длинный вывод status, cat, list-units не помещается в окно терминала,
и systemctl показывает его через less: q — выход. Чтобы
напечатать сразу в терминал, добавь --no-pager.
В юните нет [Install]. Либо это статический юнит, либо включай через зависимость/
target.
stop и restart разрывают текущие соединения к службе немедленно; на проде
для служб с graceful-остановкой сначала проверь, есть ли reload. mask
запрещает запуск юнита даже как зависимость — сервис не поднимется вместе с
другими, пока не снимешь маску (systemctl unmask), и это легко забыть.
disable --now для системной службы, от которой зависят другие юниты, роняет
и их: проверь systemctl list-dependencies --reverse <unit> заранее.
Есть неточность? Сообщить об ошибке в статье