Ich würde die systemd
Manpage 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
.
Welche Formatierung ist für systemd-Optionszeilen im Allgemeinen zulässig?
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 ...
2 Antworten auf die Frage
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-.ini
Dateien inspiriert sind ....
Beachten Sie, dass bei Verwendung mehrerer Zuweisungen für denselben Wert die Einheitendatei mit Parsern für das XDG-
.desktop
Dateiformat 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
Name
undNAME
nicht 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
Verwandte Probleme
-
1
Slackware-Init-rd_local-Problem
-
3
Ubuntu, steuere den Init-Start
-
5
Linux-Services: Gibt es eine GUI für Services?
-
0
Wie kann ich Fehler in inittab aufspüren?
-
1
Ubuntu-Init.d-Skript wird beim Start nicht aufgerufen
-
4
Init-Skripte pro Benutzer
-
1
Wo kann ich die Startoptionen für Dienste in Ubuntu konfigurieren?
-
3
Xserver von der Kommandozeile aus beenden (init 3/5 funktioniert nicht)
-
1
start-stop-daemon funktioniert in der Befehlszeile, aber nicht im Skript /etc/init.d
-
1
Was bedeutet "Runlevel wechseln" genau?