What is the right way to set PATH variable in a systemd
unit file?
After seeing a few examples, I tried to use the format below, but the variable doesn't seem to expand.
Environment="PATH=/local/bin:$PATH"
I am trying this on CoreOS with the below version of systemd.
systemd 225
-PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS -ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN
You can't use
EnvVars
inEnvironment
directives. The wholeEnvironment=
will be ignored. If you useEnvironmentFile=
, then the specified file will be loaded without substitution. SoPATH=/local/bin:$PATH
would be exactly that, and this is probably not what you want.Under CentOS7 the following works.
You can use the
EnvironmentFile=
directive in theunits
section to set environment variables.Just put the variables as
key=value
pairs and it will work.The runtime just 'source's whatever file you specify.
You can create the file using the
write_files
directive.