Quelle est la bonne façon de définir la variable PATH dans un fichier d'unité systemd
? Après avoir vu quelques exemples, j'ai essayé d'utiliser le format ci-dessous, mais la variable ne semble pas se développer.
Environment="PATH=/local/bin:$PATH"
J'essaye ceci sur CoreOS avec la version ci-dessous de systemd.
systemd 225
-PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS -ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN
Vous ne pouvez pas utiliser EnvVars
dans les directives Environment
. La totalité Environment=
sera ignoré. Si tu utilises EnvironmentFile=
, le fichier spécifié sera chargé sans substitution. Alors PATH=/local/bin:$PATH
serait exactement cela, et ce n'est probablement pas ce que vous voulez.
Sous CentOS7, les travaux suivants.
# /etc/systemd/system/nagios.service.d/env.conf
[Service]
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
> Sudo systemctl daemon-reload
> Sudo systemctl restart nagios
> Sudo cat /proc/28647/environ
...
PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
...
Vous pouvez utiliser le EnvironmentFile=
directive dans la section units
pour définir les variables d'environnement.
Mettez simplement les variables comme key=value
paires et cela fonctionnera.
Le runtime ne contient que le fichier que vous spécifiez.
Vous pouvez créer le fichier en utilisant le write_files
directive.