Я бы посетил systemd
страницу руководства вашей системы. Формат, кажется, указан в разделе 5, см. Здесь . Вы можете вызвать это, например, с помощью man 5 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
Доступны ли какие-либо документы, описывающие возможные варианты форматирования параметров? Или отсутствие такого уже признака того, что я хотел бы получить, вообще невозможно? Остальное будет задокументировано на странице руководства ...
2 ответа на вопрос
По состоянию на апрель 2016 года нет формального определения синтаксиса.
Я думаю, что в документации лучше всего подойдет эта строка:
Синтаксис основан на файлах спецификации входа рабочего стола XDG
.desktop
, которые в свою очередь основаны на.ini
файлах Microsoft Windows ....
Обратите внимание, что использование нескольких присвоений одному и тому же значению делает файл модуля несовместимым с анализаторами для формата
.desktop
файла XDG .
Оттуда мы можем перейти к разделу, описывающему «основной формат файла», который утверждает:
Записи
Записи в файле являются
парами в формате:
Key=Value
Пробел до и после знака равенства следует игнорировать;
=
знак является фактическим ограничителем.В
A-Za-z0-9-
именах клавиш могут использоваться только символы .В зависимости от обстоятельств, ключи
Name
иNAME
не эквивалентны.Несколько ключей в одной группе могут не иметь одно и то же имя. Ключи в разных группах могут иметь одинаковые имена.
К сожалению, согласно некоторым сообщениям в списке рассылки, он действительно отклоняется в нескольких местах ... и, если не смотреть на исходный код синтаксического анализатора, похоже, нет какой-либо явной документации.
Вы можете использовать systemd-analyze verify <file>
для проверки файлов вашего устройства. https://github.com/systemd/systemd/issues/3677
Похожие вопросы
-
1
Slackware init rd_local проблема
-
3
Ubuntu, контролируйте запуск init
-
5
Сервисы Linux: есть ли графический интерфейс для сервисов?
-
-
0
Как отследить ошибки в inittab?
-
1
Скрипт Ubuntu init.d не вызывается при запуске
-
4
Сценарии инициализации для каждого пользователя
-
1
Где я могу настроить параметры запуска службы в Ubuntu?
-
3
Убить xserver из командной строки (init 3/5 не работает)
-
1
start-stop-daemon работает в командной строке, но не работает в скрипте /etc/init.d
-
1
Что именно означает «переключение уровня запуска»?