Systemd: полное руководство для сисадминов

08.09.2025
0
9
---

Зачем нужен systemd

Раньше в Linux использовался SysVinit: скрипты запускались последовательно, зависшие службы нельзя было нормально отследить, логов в едином месте не было.
Systemd появился в 2010-м и решил все эти проблемы. Сегодня он используется почти во всех дистрибутивах Linux.

Systemd объединяет управление службами, ресурсами и логами в единый механизм. Это делает Linux-систему быстрее, прозрачнее и удобнее для администрирования.

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

Systemd — это не одна программа, а целый набор инструментов:

  • systemd (PID 1) — главный процесс, управляющий всем остальным;

  • systemctl — утилита для управления;

  • journald — единая система журналирования;

  • отдельные сервисы для управления сетью, временем, пользователями и оборудованием.

Юниты

В systemd всё завязано на юниты (unit). Это конфигурационные файлы, которые описывают службы, таймеры, точки монтирования и другие объекты системы.
Основные типы:

  • .service — процессы и демоны;

  • .socket — запуск по сокету;

  • .timer — планировщик (замена cron);

  • .path, .mount, .target — контроль файлов, точек монтирования, состояний системы.

Структура юнита:

  • [Unit] — описание и зависимости;

  • [Service] — как именно запускать процесс;

  • [Install] — как он привязывается к целям (target).


Типы сервисов

Через параметр Type= можно настроить поведение:

  • simple — процесс считается запущенным сразу;

  • forking — для классических демонов, которые "отделяются";

  • oneshot — однократные действия;

  • notify — сервис сам сообщает, что готов;

  • dbus — службы, работающие через D-Bus.

Зависимости и параллелизм

Systemd строит граф зависимостей между юнитами и запускает их максимально параллельно. Это ускоряет загрузку системы и делает её более управляемой.

Контроль ресурсов через cgroups

Каждая служба работает в своей cgroup, что позволяет:

  • отслеживать все её процессы;

  • ограничивать память, CPU и другие ресурсы;

  • гарантированно убивать всё, что связано с юнитом;

  • анализировать нагрузку через systemd-cgls и systemd-cgtop.

Журналы

Вместо разрозненных логов systemd использует journald:

  • бинарный формат с метаданными (PID, юнит, команда и др.);

  • просмотр через journalctl с фильтрацией по времени, уровню и сервисам;

  • удобный анализ ошибок прямо в терминале.

D-Bus

Все утилиты (включая systemctl) общаются с systemd через D-Bus — это единый и безопасный канал обмена сообщениями.

Основные команды

  • Управление сервисами:
    systemctl start/stop/restart/reload <unit>

  • Проверка:
    systemctl status <unit>

  • Автозагрузка:
    systemctl enable/disable <unit>

  • Ошибки:
    systemctl --failed

  • Логи:
    journalctl -u <unit>, journalctl -f

  • Время загрузки:
    systemd-analyze и systemd-analyze blame

Понравиласть статья? Жми лайк или расскажи своим друзьям!
Теги к новости:
Linux, System Administrator, Ubuntu
Комментарии
Добавить комментарий
Добавить свой комментарий:
Ваше Имя:
Ваш E-Mail:
Это код:
Кликните на изображение чтобы обновить код, если он неразборчив
Введите сюда:
Похожие новости:
31.08.2025
Вертикальное масштабирование пода без перезапуска стало возможным начиная с Kubernetes v1.33. Если вы хотели выдать приложению (Pod в Kubernetes) больше памяти или CPU, его приходилось перезапускать.
01.09.2025
Забавная ситуация с SSH в Ubuntu 24. После того как человек поменял в файле /etc/ssh/sshd_config порт с 22 на 2222 и сделал systemctl restart ssh — ничего не произошло.
03.09.2025
Это программные системы (RabbitMQ, Apache Kafka, Redis, ActiveMQ), которые позволяют обмениваться данными между разными компонентами приложения или между различными приложениями. Они действуют как посредники, принимая сообщения от отправителей
08.09.2025
Control Plane — это "мозг" Kubernetes, который: хранит всё состояние (etcd), входная точка API (kube-apiserver), следит за соответствием желаемого и реального состояния (controller-manager), решает где размещать нагрузки (scheduler)
08.09.2025
В PostgreSQL управление доступом построено на ролях (roles), которые могут быть пользователями или группами. Роли создаются на уровне всего кластера, а не отдельной базы. У ролей есть атрибуты (LOGIN, SUPERUSER, CREATEDB, CREATEROLE, REPLICATION,
все шаблоны для dle на сайте шаблоны dle 11.2 скачать
выбрать фон