Documentation de = - (égal à moins) dans les fichiers d'unité systemd


14

Sur mon système Archlinux, le /usr/lib/systemd/system/mdmonitor.servicefichier contient ces lignes:

[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

Je soupçonne (confirmé par certains googleurs) que cela =-signifie que le service ne devrait pas échouer si les fichiers spécifiés sont absents. Cependant, je n'ai pas trouvé ce comportement dans la page de manuel des fichiers d'unité systemd. Où est la documentation officielle de la =-mission?


1
Notez qu'il s'agit simplement d'une =affectation ordinaire , et non d' un second type de syntaxe d'affectation de fichier .INI.
JdeBP

Réponses:


19

Ceci est documenté dans systemd.exec:

EnvironmentFile=

[...]

L'argument transmis doit être un nom de fichier absolu ou une expression générique, éventuellement précédé de " -", ce qui indique que si le fichier n'existe pas, il ne sera pas lu et aucun message d'erreur ou d'avertissement n'est enregistré.

Et dans systemd.service:

ExecStart=

Pour chacune des commandes spécifiées, le premier argument doit être un chemin absolu vers un exécutable. Facultativement, ce nom de fichier peut être préfixé par un certain nombre de caractères spéciaux:

Tableau 1. Préfixes exécutables spéciaux

ExecStartPre=, ExecStartPost=

Si l'une de ces commandes (sans préfixe -) échoue, les autres ne sont pas exécutées et l'unité est considérée comme ayant échoué.

(Pour trouver la documentation la plus complète pour une directive systemd, recherchez-la dans systemd.directives.)


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.