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

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

Ich schreibe gerade einige Systemd-Servicedateien und frage mich, wie ich ihren Inhalt richtig formatieren kann, damit ich die Lesbarkeit usw. verbessern kann. Es geht eigentlich darum, ob ich überhaupt in der Lage bin, einen bestimmten Codestil zu implementieren.

Was ich habebisher gelesengeht es um die Unterstützung von Kommentaren, dass einige Optionen Leerzeichen für z. B. eine Liste von Werten unterstützen und dass dies \zum Verketten mehrerer Zeilen verwendet werden kann. Das sind so ziemlich alle allgemeinen Ratschläge. Was ich nicht gelesen habe, ist eine ausführliche Dokumentation der Schlüssel-Wert-Paare selbst, z. B. ob man vor/nach einem Schlüsselnamen und vor einem Wert Leerzeichen oder Tabulatoren setzen darf, um Zeilen einzurücken und all das Zeug.

Das Folgende ist ein Beispiel für das, was ich mich frage:

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

Vergleiche

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

Vergleiche

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

Gibt es irgendwelche Dokumente, die beschreiben, was hinsichtlich der Formatierung von Optionen möglich ist? Oder ist das Fehlen solcher Dokumente bereits ein Zeichen dafür, dass das, was ich gerne hätte, überhaupt nicht möglich ist? Sonst wäredokumentiert in der Manpage...

Antwort1

AbApril 2016, es gibt keine formale Definition der Syntax.


Ich denke, das nächste, was Sie finden werden, istDokumentationist diese Zeile:

Die Syntax ist inspiriert vonXDG Desktop Entry-Spezifikation .desktopDateien, die wiederum von Microsoft Windows- .iniDateien inspiriert sind.

...

Beachten Sie, dass die Verwendung mehrerer Zuweisungen desselben Werts die Unit-Datei mit Parsern für das XDG- .desktopDateiformat inkompatibel macht.

Von dort aus können wir zumAbschnitt, der das „Grundformat der Datei“ beschreibt, in der es heißt:

Einträge

Einträge in der Datei sind {key,value}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 die Groß- und Kleinschreibung wichtig ist, sind die Schlüssel Nameund NAMEnicht gleichwertig.

Mehrere Schlüssel in derselben Gruppe dürfen nicht denselben Namen haben. Schlüssel in verschiedenen Gruppen dürfen denselben Namen haben.

Bedauerlicherweise,nach einigen Nachrichten an die Mailingliste, es weicht an einigen Stellen ab ... und abgesehen vom Blick auf den Quellcode des Parsers scheint es keine explizite Dokumentation zu geben.


Sie können es verwenden systemd-analyze verify <file>, um Ihre Unit-Dateien zu validieren.https://github.com/systemd/systemd/issues/3677

Antwort2

systemdIch würde die Manpage Ihres Systems besuchen . Das Format scheint in Abschnitt 5 angegeben zu sein, z. B.siehe hierDies können Sie beispielsweise über aufrufen man 5 systemd.

verwandte Informationen