Dokumentation von = - (gleich minus) in systemd-Einheitendateien

14

Auf meinem Archlinux-System /usr/lib/systemd/system/mdmonitor.serviceenthält die Datei die folgenden Zeilen:

[Service]
Environment=  MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS

Ich vermute (bestätigt durch ein wenig googeln), dass dies =-bedeutet, dass der Dienst nicht fehlschlagen sollte, wenn die angegebenen Dateien fehlen. Ich konnte dieses Verhalten jedoch nicht in der Manpage der systemd-Einheitendateien finden. Wo ist die offizielle Dokumentation für den =-Auftrag?

jan
quelle
1
Beachten Sie, dass es sich nur um eine normale =Zuweisung handelt, nicht um einen zweiten Typ der INI-Dateizuweisungssyntax.
JdeBP

Antworten:

19

Dies ist dokumentiert in systemd.exec:

EnvironmentFile=

[...]

Das übergebene Argument sollte ein absoluter Dateiname oder Platzhalterausdruck sein, optional mit dem Präfix " -". Dies bedeutet, dass die Datei, wenn sie nicht vorhanden ist, nicht gelesen wird und keine Fehler- oder Warnmeldung protokolliert wird.

Und in systemd.service:

ExecStart=

Für jeden der angegebenen Befehle muss das erste Argument ein absoluter Pfad zu einer ausführbaren Datei sein. Optional kann diesem Dateinamen eine Reihe von Sonderzeichen vorangestellt werden:

Tabelle 1. Spezielle ausführbare Präfixe

ExecStartPre=, ExecStartPost=

Wenn einer dieser Befehle (ohne Präfix -) fehlschlägt, wird der Rest nicht ausgeführt und die Einheit wird als fehlgeschlagen betrachtet.

(Die vollständigste Dokumentation für eine systemd-Direktive finden Sie in systemd.directives.)

Stephen Kitt
quelle