Welche Formatierung ist für systemd-Optionszeilen im Allgemeinen zulässig?

420
Thorsten Schöning

Ich schreibe derzeit einige systemd-Servicedateien und frage mich, was erlaubt ist, ihren Inhalt richtig zu formatieren, damit ich die Lesbarkeit verbessern kann. Es ist eigentlich eine Frage, ob ich überhaupt einen Codestil implementieren kann.

Was ich bisher gelesen habe, betrifft die Unterstützung von Kommentaren. Einige Optionen unterstützen Leerzeichen für z. B. eine Liste von Werten und \können zum Verketten mehrerer Zeilen verwendet werden. Das ist so ziemlich alles als allgemeine Ratschläge. Was ich nicht gelesen habe, ist eine ausführliche Dokumentation der Schlüssel-Wert-Paare selbst, z. B. wenn Leerzeichen oder Tabulatoren vor / nach einem Schlüsselnamen und vor einem Wert zum Einrücken von Zeilen und all dem Zeug stehen dürfen.

Das folgende ist ein Beispiel von dem, was ich mich frage:

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

vs

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

vs

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

Gibt es Dokumente, die beschreiben, was hinsichtlich der Formatierung von Optionen möglich ist? Oder ist das Fehlen solcher bereits das Zeichen, dass das, was ich möchte, überhaupt nicht möglich ist? Sonst wäre in der Manpage dokumentiert ...

1

2 Antworten auf die Frage

0
mvw

Ich würde die systemdManpage auf Ihrem System besuchen . Das Format scheint in Abschnitt 5 angegeben zu sein, z . B. hier . Sie können dies zB durch aufrufen man 5 systemd.

Darauf habe ich gelesen und bezogen. Sie sagen also nichts weiter als das, was erwähnt wird, ist möglich? Ich habe gehofft, es würde nur an Dokumentation fehlen. Thorsten Schöning vor 6 Jahren 0
OK, das haben Sie in Ihrer ursprünglichen Frage nicht erwähnt. Nein, ich habe keinen Anspruch auf die Verfügbarkeit anderer Quellen erhoben. Wenn Sie Zweifel haben, machen Sie einige Experimente. Sie könnten den Parser und seine Grammatik durch [die Quelle] (https://github.com/systemd/systemd) durchsuchen. Auf der [Projektseite] (https://www.freedesktop.org/wiki/Software/systemd/) können Sie auf zusätzliche Ressourcen verweisen. mvw vor 6 Jahren 0
@mvw Dies ist keine Antwort. Es sollte gelöscht werden. jpaugh vor 6 Jahren 0
@jpaugh Keine Notwendigkeit zu löschen, mvw hatte recht, meine Frage erwähnte nicht, dass ich diese Manpage bereits gelesen hatte und war unklar. Obwohl nicht genau das, wonach ich suche, helfen Links zu diesen Manpages oft. Thorsten Schöning vor 6 Jahren 0
0
Bob

Seit April 2016 gibt es keine formale Definition der Syntax.


Ich denke, die engste, die Sie in der Dokumentation gut finden, ist diese Zeile:

Die Syntax basiert auf XDG Desktop Entry Specification- .desktop Dateien, die wiederum von Microsoft Windows- .iniDateien inspiriert sind .

...

Beachten Sie, dass bei Verwendung mehrerer Zuweisungen für denselben Wert die Einheitendatei mit Parsern für das XDG- .desktopDateiformat nicht kompatibel ist .

Von dort aus können wir zu dem Abschnitt über das "grundlegende Format der Datei" gehen, der Folgendes behauptet:

Einträge

Einträge in der Datei sind Paare im Format:

Key=Value

Leerzeichen vor und nach dem Gleichheitszeichen sollten ignoriert werden. Das =Zeichen ist das eigentliche Trennzeichen.

A-Za-z0-9-In Schlüsselnamen dürfen nur die Zeichen verwendet werden.

Da der Fall von Bedeutung ist, sind die Schlüssel Nameund NAMEnicht gleichwertig.

Mehrere Schlüssel in derselben Gruppe haben möglicherweise nicht denselben Namen. Schlüssel in verschiedenen Gruppen können denselben Namen haben.

Laut einigen Nachrichten an die Mailing-Liste weicht das leider an einigen Stellen ab ... und wenn man sich den Quellcode des Parsers nicht anschaut, scheint es keine ausdrückliche Dokumentation zu geben.


Sie können systemd-analyze verify <file>Ihre Einheitendateien überprüfen. https://github.com/systemd/systemd/issues/3677