Я знаю, что все они являются единичными файлами, но я не могу понять их особого значения. Я думаю, что цели похожи на демоны, а сокеты такие же, как сокет (порт IP +), но также с номерами инодов. Может ли кто-нибудь объяснить их простыми словами?
35
man
страницы являются образцовыми: вы смотрелиman systemd.{service,socket,target}
?Ответы:
Сервисные единицы:
- systemd.service (5)
Служебные модули Systemd - это модули, которые фактически выполняют и отслеживают программы и демоны, а зависимости используются для того, чтобы убедиться, что службы запускаются в правильном порядке. Они являются наиболее часто используемым типом единиц.
Розетки:
- systemd.socket (5)
Сокетные юниты, с другой стороны, на самом деле не запускают демонов сами по себе. Вместо этого они просто сидят и слушают IP-адрес и порт или сокет домена UNIX, и когда что-то подключается к нему, запускается демон, для которого предназначен сокет, и передается соединение с ним.
Это полезно для того, чтобы убедиться, что большие демоны, которые занимают много ресурсов, но используются редко, не работают и не занимают ресурсы все время, а вместо этого запускаются только при необходимости.
Целевые единицы:
- systemd.target (5)
Цели используются для группировки и заказа единиц. Они являются в некоторой степени грубым эквивалентом уровней запуска в том, что в разных целях запускаются разные сервисы, сокеты и другие юниты. В отличие от уровней выполнения, они имеют гораздо более свободную форму, и вы можете легко создавать свои собственные цели для упорядочивания юнитов, и цели имеют зависимости между собой.
Например,
multi-user.target
это то, под чем сгруппировано большинство демонов, и его необходимоbasic.target
активировать, что означает, что все сервисы, сгруппированные под,basic.target
будут запущены раньше, чем те, в которыхmulti-user.target
.источник
Документация для systemd отлично подходит для такого относительно нового проекта. Начать с целей , с
man systemd.target
:Эти «группы модулей» охватывают множество различных функций, от
basic.target
которых по существу охватывает загрузку системы, вплоть до всего, от dbus, gettys, точек монтирования до свопинга и таймеров. Вы можете увидеть полный список сman systemd.special
.служебные файлы - это основные модули для запуска процессов, контролируемых systemd. Опять же из
man systemd.service
:Это демоны, которые можно запускать, останавливать, перезапускать, перезагружать.
Наконец, розетки , из
man systemd.socket
:Они охватывают сокет в файловой системе или в Интернете, а также классические FIFO в качестве транспорта. Каждый блок сокетов имеет соответствующий сервисный блок, который запускается, если первое соединение подключается к сокету или FIFO.
В дополнение к
man
страницам, стоит прочитать серию постов Леннарта в блоге, systemd для администраторов , в которой подробно рассматривается архитектура и реализация systemd (в настоящее время в этой серии 20 постов).источник