1

Сейчас я пишу некоторые файлы службы 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

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

2 ответа2

0

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

0

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


Я думаю, что в документации лучше всего подойдет эта строка:

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

...

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

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

Записи

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

Key=Value

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

В именах клавиш могут использоваться только символы A-Za-z0-9- .

Поскольку регистр имеет значение, ключи Name и NAME не эквивалентны.

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

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


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .