在systemd
单元文件中设置PATH变量的正确方法是什么?
看了几个例子之后,我尝试使用下面的格式,但变量似乎没有扩展。
Environment="PATH=/local/bin:$PATH"
我正在使用以下版本的systemd在CoreOS上尝试此操作。
systemd 225
-PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS -ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN
答案 0 :(得分:28)
您无法在EnvVars
指令中使用Environment
。整个Environment=
将被忽略。如果使用EnvironmentFile=
,则将加载指定的文件而不进行替换。所以PATH=/local/bin:$PATH
正好,这可能不是你想要的。
在CentOS7下,以下工作。
# /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
...
答案 1 :(得分:1)
您可以使用EnvironmentFile=
部分中的units
指令来设置环境变量。
只需将变量设为key=value
对即可。
运行时只需提供您指定的文件。
您可以使用write_files
指令创建文件。