|
|||||||
Что означает символ "@" в имени файла юнита systemd?
Время создания: 11.04.2024 16:14
Текстовые метки: linux, systemd, юнит, unit, символ, "@", собака, собачка, обезьяна, обезьянка, at, шаблон, шаблонный, экземпляр, идентификатор
Раздел: Компьютер - Linux - Управление сервисами (демонами)
Запись: xintrea/mytetra_syncro/master/base/1712841273nfapagedd2/text.html на raw.github.com
|
|||||||
|
|||||||
Некоторые юниты содержат в названии символ "@". Имеются в виду названия вида название@строка.service. Это т.н. экземпляры юнита-шаблона, настоящее имя которого не содержит части строка (т.е. имеет вид название@.service). Таким образом, имя сервиса, которое содержит "@", автоматически свидетельствует о том, что в имени этого сервиса используются шаблоны. Строка в таком случае называется идентификатором экземпляра и передаётся юниту-шаблону в качестве аргумента при вызове функций systemctl. В содержимом файла юнита, чтобы получить данную строку (т. е. идентификатор), можно использовать макроподстановку %i (что означает instance name). Если говорить точнее, systemd сначала попытается найти юнит, название которого полностью совпадёт с название@строка.суффикс, и лишь в случае неудачи создаст экземпляр шаблона название@.суффикс. Тем не менее, такие "конфликты" довольно редки, так как по соглашению символ "@" должен использоваться только в названиях юнитов-шаблонов. Также помните, что вызвать юнит-шаблон без идентификатора экземпляра (строка) не получится, поскольку в этом случае нечего будет подставить вместо спецификатора %i. Другими словами, при написании в текстах юнитов имени такого юнита или при любом другом обращения к шаблонному юниту, обязательно нужно не пропускать строку идентификатора экземпляра, которая находится между "@" и точкой ".". |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|