web-dev-qa-db-fra.com

systemd: directive "Environnement" pour définir PATH

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
18
ϹοδεMεδιϲ

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
...
31
xoryves

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.

1
krish7919