Documentazione di = - (uguale a meno) nei file di unità di systemd


14

Sul mio sistema Archlinux, il /usr/lib/systemd/system/mdmonitor.servicefile contiene queste righe:

[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

Ho il sospetto (confermato da alcuni googling) che i =-mezzi che il servizio non dovrebbe fallire se i file specificati sono assenti. Tuttavia non sono riuscito a trovare quel comportamento nella manpage dei file di unità di systemd. Dov'è la documentazione ufficiale per l' =-incarico?


1
Si noti che si tratta solo di =un'assegnazione normale , non di un secondo tipo di sintassi dell'assegnazione di file .INI.
JdeBP,

Risposte:


19

Questo è documentato in systemd.exec:

EnvironmentFile=

[...]

L'argomento passato dovrebbe essere un nome file assoluto o un'espressione jolly, eventualmente con il prefisso " -", che indica che se il file non esiste, non verrà letto e non verrà registrato alcun messaggio di errore o avviso.

E in systemd.service:

ExecStart=

...

Per ciascuno dei comandi specificati, il primo argomento deve essere un percorso assoluto per un eseguibile. Facoltativamente, questo nome file può essere preceduto da un numero di caratteri speciali:

Tabella 1. Prefissi eseguibili speciali

...

ExecStartPre=, ExecStartPost=

...

Se uno di questi comandi (non preceduto da -) fallisce, il resto non viene eseguito e l'unità viene considerata fallita.

(Per trovare la documentazione più completa per una direttiva systemd, cercare in systemd.directives.)


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.