Является заменой классическому SystemV и Init. Управляет службами и целевыми состояниями. Использует агрессивное распараллеливание запуска служб, используя сокеты и системную шину dbus. Создатель — Леннарт Поттеринг.
Основные компоненты systemd:
systemd — основная служба, управляет процессами пользовательского пространства, в частности, службами. ЯвляетсязаменойSystemV и Init, как правило работает с PID=1.
Юнит (unit) — основная единица systemd. Примерами юнитов являютсяслужбы, целевые состояния.
systemd основан на использовании механизмов, предоставленных ядром Linux: пространств имен (namespaces) и контрольных групп (cgroups)
namespaces — пространства имен — механизм, обеспечивающий изоляцию процессов благодаря ограничению видимости тех или иных ресурсов ядраLinux.
Пространствоименпредоставляет процессам собственные экземпляры имен, так, что изменения, видимые членам одного пространстваимен, не видимы для процессов, не входящих в это пространствоимен.
в linuxимеются7типовпространствимен: cgroups, pid, network, user, mount, ipc, uts.
В systemd активно используются cgroups — контрольные группы. Механизм позволяет образовывать иерархические группы процессов с заданными ресурсными свойствами и обеспечивает программное управление ими, задает ограничения на ресурсы (процессор, сеть, память, ввод-вывод и т. д.)
В противовес классическому init вsystemdиспользуется не pid, a cgroups, что позволяет отслеживать службу, даже после ветвления (fork) и завершения родительского процесса.
Службы systemd:
systemd-journald — служба регистрации событий, тесно интегрированная с systemd. Регистрирует сообщения системного журнала (syslog), ядра (kernel log), сообщения службы, выводимые в STDOUT и STDERR.
systemd—networkd — служба управления сетевыми соединениями. Обнаруживает и настраивает сетевые соединения.
systemd—logind — служба, управляющая входом пользователей в систему, пользовательскими сеансами, созданием текстовых терминалов при активации виртуальной консоли, обработкой клавиш сна/выключения и рядом других связанных возможностей.
systemd—udevd — служба управления событиями устройств.
Утилиты:
systemctl — основной инструмент управления службами и целевыми состояниями systemd
system-notify — служит для служб типа notify. Запущенный в качестве службы сценарий с помощью system-notify может сообщать службе свой статус.
systemd-analyze позволяет проанализировать время загрузки, командой systemd-analyze plot > <filename>.svg и просмотр графика с помощью firefox командой firefox <filename>.svg
systemd-cgls выводит дерево контрольных групп (cgroup)
systemd-cgtop — аналог top для контрольныхгрупп (cgroup)
loginctl — утилита для управления менеджера systemd-logind.