
Я знаю, что все они являются файлами юнитов, но я не могу понять их особое значение. Я думаю, что цели похожи на демоны, а сокеты — то же самое, что и сокеты (IP + порт), но также с номерами инодов. Может ли кто-нибудь объяснить их простыми словами?
решение1
Подразделения обслуживания:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
Единицы обслуживания Systemd — это единицы, которые фактически выполняют и отслеживают программы и демоны, а зависимости используются для того, чтобы гарантировать, что службы запускаются в правильном порядке. Это наиболее часто используемый тип единиц.
Блоки розеток:
A unit configuration file whose name ends in ".socket" encodes information about an IPC or network socket or a file system FIFO controlled and supervised by systemd, for socket-based activation.
С другой стороны, сокетные блоки на самом деле не запускают демонов сами по себе. Вместо этого они просто сидят и слушают IP-адрес и порт или сокет домена UNIX, и когда что-то подключается к нему, запускается демон, для которого предназначен сокет, и соединение передается ему.
Это полезно для того, чтобы убедиться, что большие демоны, которые потребляют много ресурсов, но редко используются, не работают и не потребляют ресурсы постоянно, а запускаются только при необходимости.
Целевые единицы:
A unit configuration file whose name ends in ".target" encodes information about a target unit of systemd, which is used for grouping units and as well-known synchronization points during start-up.
Цели используются для группировки и упорядочивания единиц. Они являются своего рода грубым эквивалентом уровней запуска, поскольку на разных целях запускаются разные службы, сокеты и другие единицы. В отличие от уровней запуска, они гораздо более свободны в форме, и вы можете легко создавать собственные цели для упорядочивания единиц, а цели имеют зависимости между собой.
Например, multi-user.target
это то, под чем сгруппировано большинство демонов, и его необходимо basic.target
активировать, а это значит, что все службы, сгруппированные под этим, basic.target
будут запущены раньше тех, что находятся в multi-user.target
.
решение2
Документация по systemd великолепна для такого относительно нового проекта. Для началацели, от man systemd.target
:
Целевые модули не предлагают никакой дополнительной функциональности сверх общей функциональности, предоставляемой модулями. Они существуют только для группировки модулей через зависимости (полезны в качестве целей загрузки) и для установки стандартизированных имен для точек синхронизации, используемых в зависимостях между модулями. Помимо прочего, целевые модули являются более гибкой заменой уровней выполнения SysV в классической системе инициализации SysV.
Эти "группы единиц" охватывают множество различных функций, из basic.target
которых по сути охватывает загрузку системы, вплоть до всего, от dbus, gettys, точек монтирования до swap и таймеров. Вы можете увидеть полный список с помощью man systemd.special
.
услугаФайлы являются основными единицами для запуска процессов, контролируемых systemd. Опять же, из man systemd.service
:
Файл конфигурации модуля, имя которого заканчивается на .service, кодирует информацию о процессе, контролируемом и контролируемом systemd.
Они представляют собой демоны, которые можно запускать, останавливать, перезапускать и перезагружать.
Окончательно,Розетки, от man systemd.socket
:
Файл конфигурации устройства, имя которого заканчивается на «.socket», кодирует информацию о сетевом сокете IPC или файловой системе FIFO, контролируемой и контролируемой systemd, для активации на основе сокета.
Они охватывают сокет в файловой системе или в Интернете, а также классические FIFO в качестве транспорта. Каждый сокетный блок имеет соответствующий сервисный блок, который запускается, если первое соединение приходит на сокет или FIFO.
В дополнение к этим man
страницам стоит прочитать серию постов в блоге Леннарта,systemd для администраторов, в котором подробно рассматривается архитектура и реализация systemd (в настоящее время в серии 20 публикаций).