environment.d
systemd
Developer
Ray
Strode
rstrode@redhat.com
environment.d
5
environment.d
Definition of user session environment
~/.config/environment.d/*.conf
/etc/environment.d/*.conf
/run/environment.d/*.conf
/usr/lib/environment.d/*.conf
/etc/environment
Description
The environment.d directories contain a list of "global" environment
variable assignments for the user environment.
systemd-environment-d-generator8
parses them and updates the environment exported by the systemd user instance to the services it
starts.
It is recommended to use numerical prefixes for file names to simplify ordering.
For backwards compatibility, a symlink to /etc/environment is
installed, so this file is also parsed.
Configuration Format
The configuration files contain a list of
KEY=VALUE environment
variable assignments, separated by newlines. The right hand side of these assignments may
reference previously defined environment variables, using the ${OTHER_KEY}
and $OTHER_KEY format. It is also possible to use
${FOO:-DEFAULT_VALUE}
to expand in the same way as ${FOO} unless the
expansion would be empty, in which case it expands to DEFAULT_VALUE,
and use
${FOO:+ALTERNATE_VALUE}
to expand to ALTERNATE_VALUE as long as
${FOO} would have expanded to a non-empty value.
No other elements of shell syntax are supported.
EachKEY must be a valid variable name. Empty lines
and lines beginning with the comment character # are ignored.
Example
Setup environment to allow access to a program installed in
/opt/foo
/etc/environment.d/60-foo.conf:
FOO_DEBUG=force-software-gl,log-verbose
PATH=/opt/foo/bin:$PATH
LD_LIBRARY_PATH=/opt/foo/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
See Also
systemd1,
systemd-environment-d-generator8,
systemd.environment-generator7