Какое форматирование вообще допускается для строк параметров systemd?

Какое форматирование вообще допускается для строк параметров systemd?

Я сейчас пишу некоторые файлы служб systemd и задаюсь вопросом, что разрешено для правильного форматирования их содержимого, чтобы я мог улучшить читаемость и т. п. Это в значительной степени вопрос о том, смогу ли я вообще реализовать какой-то стиль кода.

Что я имеюпрочитано до сих поро поддержке комментариев, о том, что некоторые опции поддерживают пробелы, например, для списка значений, и что их \можно использовать для объединения нескольких строк. Это, в общем-то, все общие советы. Чего я не прочитал, так это подробной документации о самих парах ключ-значение, например, разрешено ли ставить пробелы или табуляции до/после имени ключа и перед значением для отступа строк и все такое.

Вот один из примеров того, о чем я себе задаю:

[Unit]
Description=some pretty long description \
            spanning multiple lines
RequiresMountsFor=/tmp

против.

[Unit]
Description       = some pretty long description \
                    spanning multiple lines
RequiresMountsFor = /tmp

против.

[Unit]
    Description       = some pretty long description \
                        spanning multiple lines
    RequiresMountsFor = /tmp

Есть ли какие-либо доступные документы, описывающие, что возможно относительно форматирования опций? Или отсутствие таковых уже является признаком того, что то, что я хотел бы иметь, вообще невозможно? Иначе было быдокументировано на странице руководства...

решение1

По состоянию наАпрель 2016 г.формального определения синтаксиса не существует.


Я думаю, что самое близкое, что вы найдете вдокументацияэта строка:

Синтаксис вдохновленТехнические характеристики начального уровня XDG Desktop .desktopфайлы, которые в свою очередь созданы по образцу .iniфайлов Microsoft Windows.

...

Обратите внимание, что использование нескольких назначений одному и тому же значению делает файл модуля несовместимым с анализаторами .desktopформата файла XDG.

Оттуда мы можем перейти краздел, описывающий «базовый формат файла», в котором утверждается:

Записи

Записи в файле представляют собой {key,value}пары в формате:

Key=Value

Пробелы до и после знака равенства следует игнорировать; =фактическим разделителем является знак.

A-Za-z0-9-В названиях ключей можно использовать только символы .

Поскольку случай существенный, ключи Nameи NAMEне эквивалентны.

Несколько ключей в одной группе могут иметь разные имена. Ключи в разных группах могут иметь одинаковые имена.

К сожалению,согласно некоторым сообщениям в списке рассылки, он отклоняется в нескольких местах... и, за исключением исходного кода парсера, похоже, нет никакой явной документации.


Вы можете использовать его systemd-analyze verify <file>для проверки файлов вашего подразделения.https://github.com/systemd/systemd/issues/3677

решение2

Я бы посетил systemdстраницу man в вашей системе. Формат, кажется, указан в разделе 5, напримерглянь сюда. Вы можете вызвать это, например, с помощью man 5 systemd.

Связанный контент