Documentación de = - (igual a menos) en archivos de unidad systemd


14

En mi sistema Archlinux, el /usr/lib/systemd/system/mdmonitor.servicearchivo contiene estas líneas:

[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

Sospecho (confirmado por Google) que =-significa que el servicio no debería fallar si los archivos especificados están ausentes. Sin embargo, no pude encontrar ese comportamiento en la página de manual de los archivos de la unidad systemd. ¿Dónde está la documentación oficial para la =-tarea?


1
Tenga en cuenta que es solo una =asignación ordinaria , no un segundo tipo de sintaxis de asignación de archivos .INI.
JdeBP

Respuestas:


19

Esto está documentado en systemd.exec:

EnvironmentFile=

[...]

El argumento pasado debe ser un nombre de archivo absoluto o una expresión comodín, opcionalmente con el prefijo " -", que indica que si el archivo no existe, no se leerá y no se registrará ningún mensaje de error o advertencia.

Y en systemd.service:

ExecStart=

...

Para cada uno de los comandos especificados, el primer argumento debe ser una ruta absoluta a un ejecutable. Opcionalmente, este nombre de archivo puede tener como prefijo una serie de caracteres especiales:

Tabla 1. Prefijos ejecutables especiales

...

ExecStartPre=, ExecStartPost=

...

Si alguno de esos comandos (sin prefijo -) falla, el resto no se ejecuta y la unidad se considera fallida.

(Para encontrar la documentación más completa para una directiva systemd, búsquela en systemd.directives).


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.