
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
.desktop
Dateien, die wiederum von Microsoft Windows-.ini
Dateien inspiriert sind....
Beachten Sie, dass die Verwendung mehrerer Zuweisungen desselben Werts die Unit-Datei mit Parsern für das XDG-
.desktop
Dateiformat 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
Name
undNAME
nicht 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
systemd
Ich 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
.