Documentação de = - (igual a menos) nos arquivos de unidade do systemd

3

No meu sistema Archlinux, o arquivo /usr/lib/systemd/system/mdmonitor.service contém estas linhas:

[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

Eu suspeito (confirmado por algum googling) que o =- significa que o serviço não deve falhar se os arquivos especificados estiverem ausentes. No entanto, eu não consegui encontrar esse comportamento na manpage dos arquivos unitários do systemd. Onde está a documentação oficial para a designação =- ?

    
por jan 13.11.2017 / 10:37

1 resposta

8

Isso está documentado em systemd.exec :

EnvironmentFile=

[...]

The argument passed should be an absolute filename or wildcard expression, optionally prefixed with "-", which indicates that if the file does not exist, it will not be read and no error or warning message is logged.

E em systemd.service :

ExecStart=

… For each of the specified commands, the first argument must be an absolute path to an executable. Optionally, this filename may be prefixed with a number of special characters:

Table 1. Special executable prefixes

ExecStartPre=, ExecStartPost= … If any of those commands (not prefixed with -) fail, the rest are not executed and the unit is considered failed.

(Para encontrar a documentação mais completa para uma diretiva systemd, procure-a em systemd.directives .

    
por 13.11.2017 / 10:51