hostprofi.ru
Подобрать хостинг
Термин·буква S

systemd

краткое определение

systemd — система инициализации и менеджер служб Linux, заменившая SysV init. Запускает службы параллельно при старте системы, управляет зависимостями между сервисами, ведёт логи (journald) и контролирует ресурсы через cgroups. Стандарт в Ubuntu, Debian, CentOS, Rocky Linux с 2015 года.

systemd — система инициализации (init) и менеджер служб для Linux. Выступает первым процессом (PID 1), запускаемым ядром после загрузки. Отвечает за старт всех системных и пользовательских служб, управление их зависимостями и жизненным циклом.

Как работает

systemd управляет юнитами (units) — файлами конфигурации с расширениями .service, .socket, .timer, .target и др. Службы запускаются параллельно с учётом зависимостей: если сервис A зависит от B, systemd запустит B первым. Это ускоряет загрузку по сравнению с последовательным SysV init.

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

systemctl start nginx          # запустить сервис
systemctl stop nginx           # остановить
systemctl enable nginx         # добавить в автозагрузку
systemctl status nginx         # статус
journalctl -u nginx -f         # логи сервиса

journald — компонент systemd для централизованного сбора логов в бинарном формате. Запрос логов: journalctl -u nginx --since "1 hour ago". cgroups-интеграция позволяет ограничить ресурсы сервиса: MemoryMax=512M, CPUQuota=50% в .service файле.

История

systemd разработан Леннартом Поттерингом и Кеем Сиверсом в 2010 году. Включён в Fedora 15 (2011). Debian принял systemd в 2014 году (версия 7/8). Ubuntu перешла с Upstart на systemd в 15.04 (2015). К 2016 году systemd стал стандартом для всех основных дистрибутивов.

Связь с хостингом

На VPS системный администратор работает с systemd ежедневно: создаёт .service-юниты для приложений (Node.js, Python, Java), настраивает автозапуск, читает логи через journalctl. Пример .service-юнита для Node.js-приложения добавляется в /etc/systemd/system/myapp.service и управляется через systemctl.

Основные концепции systemd

Unit-файлы описывают сервисы (.service), сокеты (.socket), таймеры (.timer), монтирование (.mount). systemctl start/stop/enable/disable/status имя.service. journalctl -u имя.service -f — логи в реальном времени. Зависимости через After=, Requires=, Wants=.

Создание сервиса

Файл /etc/systemd/system/myapp.service: [Service] ExecStart=/usr/bin/node /app/server.js Restart=always User=www-data. [Install] WantedBy=multi-user.target. После создания: systemctl daemon-reload && systemctl enable --now myapp.

systemd в хостинге

Автозапуск Nginx, PHP-FPM, MySQL, приложений. Ограничение ресурсов: CPUQuota=50%, MemoryMax=512M — изоляция сервисов в пределах одного VPS. systemd-timer как замена cron с зависимостями и логированием.

systemd-networkd

systemd-networkd: альтернатива NetworkManager для серверов. Конфиг в /etc/systemd/network/. Поддержка VLAN, bonding, bridge. Быстрее поднимает сетевые интерфейсы при загрузке. На Ubuntu 22.04: Netplan → systemd-networkd бэкенд по умолчанию. networkctl status — статус интерфейсов.

Анализ проблем загрузки

systemd-analyze — общее время загрузки. systemd-analyze blame — топ медленных сервисов. systemd-analyze critical-chain — критический путь загрузки. Оптимизация: отключить неиспользуемые сервисы (systemctl disable avahi-daemon). Для VPS загрузка: 5–15 секунд норма.

systemd управляет всеми ключевыми сервисами: Nginx, PostgreSQL, Docker, SSH-демон. systemd-timer заменяет cron. journald собирает логи всех сервисов. Ubuntu, Debian, Rocky Linux используют systemd как init.

Другие термины