Dokumentacja = - (równa się minus) w plikach jednostkowych systemowych


15

W moim systemie Archlinux /usr/lib/systemd/system/mdmonitor.serviceplik zawiera następujące linie:

[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

Podejrzewam (potwierdzone przez niektórych Google), że =-oznacza to, że usługa nie powinna zawieść, jeśli określone pliki są nieobecne. Jednak nie udało mi się znaleźć tego zachowania na stronie systemowej plików jednostkowych. Gdzie jest oficjalna dokumentacja =-zadania?


1
Zauważ, że jest to zwykłe =przypisanie, a nie drugi typ składni przypisania pliku .INI.
JdeBP

Odpowiedzi:


20

Jest to udokumentowane w systemd.exec:

EnvironmentFile=

[...]

Podany argument powinien być bezwzględną nazwą pliku lub wyrażeniem wieloznacznym, opcjonalnie poprzedzonym znakiem „ -”, co oznacza, że ​​jeśli plik nie istnieje, nie zostanie odczytany i nie zostanie zarejestrowany komunikat o błędzie lub ostrzeżeniu.

I w systemd.service:

ExecStart=

Dla każdego z określonych poleceń pierwszy argument musi być bezwzględną ścieżką do pliku wykonywalnego. Opcjonalnie ta nazwa pliku może być poprzedzona wieloma znakami specjalnymi:

Tabela 1. Specjalne prefiksy wykonywalne

ExecStartPre=, ExecStartPost=

Jeśli dowolne z tych poleceń (bez prefiksu -) nie powiedzie się, reszta nie zostanie wykonana, a jednostka zostanie uznana za nieudaną.

(Aby znaleźć najbardziej kompletną dokumentację dla dyrektywy systemowej, sprawdź ją w systemd.directives.)


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.