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