ServerAID
Найти гайд, команду, тег… ⌘ K
Глоссарий  ·  термин

systemd — что это и зачем

Систем-менеджер и init-процесс с PID 1 в современных Linux-дистрибутивах. Запускает все остальные процессы, управляет сервисами через unit-файлы, собирает логи в journald и держит цепочку зависимостей при загрузке. На Ubuntu используется с 15.04.

systemd

Систем-менеджер и init-процесс с PID 1 в современных Linux-дистрибутивах. Запускает все остальные процессы, управляет сервисами через unit-файлы, собирает логи в journald и держит цепочку зависимостей при загрузке. На Ubuntu используется с 15.04.

Что это в одном абзаце

После загрузки ядра Linux первым в пользовательском пространстве запускается процесс с PID 1 — он отвечает за поднятие всей остальной системы. На современной Ubuntu этот процесс — systemd. Раньше эту роль играл SysV init со скриптами в /etc/init.d/, потом был upstart; с 2015 года стандарт — systemd.

Команда systemctl — это клиент для общения с PID 1. Когда вы пишете sudo systemctl restart nginx, вы шлёте команду демону systemd, который перезапускает указанный сервис.

Из чего он состоит

systemd — это не только init. Это набор связанных компонентов:

  • systemd (PID 1) — собственно менеджер: парсит unit-файлы, поднимает сервисы, держит зависимости.
  • systemctl — CLI для управления: start, stop, enable, status, daemon-reload.
  • journald — централизованный сборщик логов. journalctl -u nginx достаёт логи конкретного сервиса.
  • logind — отслеживает пользовательские сессии, отвечает за loginctl и user-сервисы.
  • resolved — локальный DNS-резолвер (/etc/resolv.conf указывает на 127.0.0.53).
  • timesyncd — простой NTP-клиент для синхронизации времени.
  • udevd — обработчик горячего подключения устройств (правила в /etc/udev/rules.d/).
  • timers — замена cron, описывает задачи через unit-файлы *.timer.

Все эти компоненты — часть одного дистрибутива systemd, но многие можно выключить и заменить: например, resolved отключают в пользу прямого /etc/resolv.conf или unbound.

Чем заменил предшественников

Старое решение systemd-аналог
init.d/<service> — shell-скрипты unit-файлы *.service
update-rc.d enable systemctl enable
service nginx restart systemctl restart nginx
cron/anacron *.timer units
syslog, rsyslog journalctl (часто параллельно)
inetd/xinetd *.socket units

Главные плюсы такой замены:

  • Параллельный запуск при загрузке через граф зависимостей — система поднимается за секунды, а не последовательные «звёздочки» SysV.
  • Декларативный конфиг в unit-файлах вместо длинных bash-скриптов.
  • Надзор — systemd знает, жив ли сервис, и может рестартовать его при падении (Restart=always).
  • Централизованные логи — не нужно знать, в какой /var/log/<service>.log смотреть, всё через journalctl -u <service>.

Что такое systemctl

systemctl — основной CLI-инструмент для общения с systemd. Часто встречается в поиске как «systemctl linux что это» — это и есть ответ. Базовые команды:

sudo systemctl start nginx        # запустить сейчас
sudo systemctl stop nginx         # остановить сейчас
sudo systemctl restart nginx      # перезапустить
sudo systemctl reload nginx       # перечитать конфиг без рестарта
sudo systemctl enable nginx       # добавить в автозагрузку
sudo systemctl disable nginx      # убрать из автозагрузки
sudo systemctl status nginx       # текущее состояние и последние строки журнала
sudo systemctl daemon-reload      # перечитать unit-файлы после правок

Подробный разбор systemctl enable, шорткат --now и написание собственного unit-файла — в гайде по systemctl и systemd unit.

Где systemd используется в типичных задачах

  • nginx как сервис. При apt install nginx пакет приносит unit-файл, и сервис управляется через systemctl. См. nginx reverse proxy.
  • docker compose как сервис. Для автозапуска compose-стека после ребута оборачивают docker compose up -d в unit-файл Type=oneshot. См. docker compose на Ubuntu.
  • SSH-демон. В Ubuntu 24.04 это ssh.service или ssh.socket (socket-activation) — нюанс важен при смене порта SSH. См. SSH-ключи Ubuntu.
  • Автообновления. unattended-upgrades запускается через apt-daily-upgrade.timer — стандартный systemd-таймер. См. apt update и apt upgrade.
  • Снапшоты btrfs. snapper собирает периодические снимки через snapper-timeline.timer. См. btrfs снапшоты и subvolume.

Частые вопросы

Что делает systemd в Linux

Запускает первым после ядра, получает PID 1 и поднимает всё остальное: ядро передаёт ему управление, дальше systemd читает unit-файлы из /etc/systemd/system/ и /lib/systemd/system/, разрешает зависимости и параллельно стартует сервисы. Также управляет логами (через journald), таймерами и пользовательскими сессиями.

Чем systemd отличается от init

SysV init запускал скрипты последовательно, по приоритетам в названии файлов (S20syslog, S21nginx). systemd использует декларативные unit-файлы, разрешает зависимости графом и стартует сервисы параллельно — отсюда выигрыш по времени загрузки. Кроме того, systemd следит за процессами после старта и может рестартовать их при падении.

В чём разница между systemd и systemctl

systemd — это сам процесс PID 1, init и менеджер сервисов. systemctl — CLI-клиент, через который вы отдаёте команды этому процессу. Можно сравнить с docker и docker-cli: docker — демон, docker — это команда для общения с ним.

На каких дистрибутивах используется systemd

Ubuntu (с 15.04), Debian (с 8), Fedora (с 15), CentOS/RHEL (с 7), Arch, openSUSE. Без systemd: Alpine Linux (использует OpenRC), Void Linux (runit), Devuan (специально форкнутый Debian без systemd), Gentoo (по выбору).

Как посмотреть все запущенные сервисы systemd

systemctl list-units --type=service --state=running — список активных сервисов. systemctl list-unit-files — все unit-файлы (включая отключённые). systemctl --failed — только упавшие сервисы.

Что почитать

Похожие материалы

grep — что это и зачем
Глоссарий

grep — что это и зачем

grep — стандартная команда Linux для поиска строк по шаблону внутри текстовых файлов и потоков. Берёт текст на вход, отдаёт строки, в которых нашлось совпадение. Базовый инструмент работы с логами, конфигами, выводом других команд через пайп.

Редакция
find — что это и зачем
Глоссарий

find — что это и зачем

find — стандартная команда Linux для поиска файлов и каталогов по имени, типу, правам, размеру, дате и десяткам других критериев. С помощью `-exec` поверх найденного можно сразу выполнять команды. Универсальный инструмент админа для массовой работы с файловой системой.

Редакция
snap — что это и зачем
Глоссарий

snap — что это и зачем

snap — система упаковки и установки приложений от Canonical, разработанная как альтернатива apt. Каждый snap — самодостаточный пакет со своими зависимостями, изолированный от системы через AppArmor. Используется на Ubuntu для Firefox, Chromium, microk8s и многих desktop-приложений.

Редакция
LVM — что это и зачем
Глоссарий

LVM — что это и зачем

LVM — слой абстракции между физическими дисками и файловыми системами в Linux. Объединяет диски в пулы (Volume Groups), нарезает их на логические тома (Logical Volumes) и позволяет изменять размер на лету. Альтернатива классическому partitioning, которая делает работу с дисками гибкой.

Редакция