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


14

No meu sistema Archlinux, o /usr/lib/systemd/system/mdmonitor.servicearquivo 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 alguns usuários do Google) que os =-meios que o serviço não deve falhar se os arquivos especificados estiverem ausentes. No entanto, não consegui encontrar esse comportamento na página de manual dos arquivos da unidade systemd. Onde está a documentação oficial da =-tarefa?


1
Observe que é apenas uma =atribuição comum , não um segundo tipo de sintaxe de atribuição de arquivo .INI.
JdeBP

Respostas:


19

Isso está documentado em systemd.exec:

EnvironmentFile=

[...]

O argumento transmitido deve ser um nome de arquivo absoluto ou expressão curinga, opcionalmente prefixado com " -", que indica que, se o arquivo não existir, ele não será lido e nenhum erro ou mensagem de aviso será registrada.

E em systemd.service:

ExecStart=

...

Para cada um dos comandos especificados, o primeiro argumento deve ser um caminho absoluto para um executável. Opcionalmente, esse nome de arquivo pode ser prefixado com um número de caracteres especiais:

Tabela 1. Prefixos Executáveis ​​Especiais

...

ExecStartPre=, ExecStartPost=

...

Se algum desses comandos (sem o prefixo -) falhar, o restante não será executado e a unidade será considerada com falha.

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


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.