Known Environment Variables

A number of systemd components take additional runtime parameters via environment variables. Many of these environment variables are not supported at the same level as command line switches and other interfaces are: we don’t document them in the man pages and we make no stability guarantees for them. While they generally are unlikely to be dropped any time soon again, we do not want to guarantee that they stay around for good either.

Below is an (incomprehensive) list of the environment variables understood by the various tools. Note that this list only covers environment variables not documented in the proper man pages.

All tools:

systemctl:

systemd-nspawn:

systemd-vmspawn:

systemd-logind:

systemd-udevd and sd-device library:

udevadm and systemd-hwdb:

nss-systemd:

systemd-timedated:

systemd-sulogin-shell:

bootctl and other tools that access the EFI System Partition (ESP):

systemd itself:

systemd-remount-fs:

systemd-firstboot, localectl, and systemd-localed:

systemd-resolved:

systemd-sysext:

systemd-tmpfiles:

systemd-sysusers:

systemd-sysv-generator:

systemd tests:

fuzzers:

Note that it may be also useful to set $SYSTEMD_LOG_LEVEL, since all logging is suppressed by default.

systemd-importd:

systemd-dissect, systemd-nspawn and all other tools that may operate on disk images with --image= or similar:

systemd-cryptsetup:

Various tools that read passwords from the TTY, such as systemd-cryptenroll and homectl:

systemd-homed:

kernel-install:

systemd-journald, journalctl:

systemd-pcrextend, systemd-cryptsetup:

systemd-repart:

systemd-nspawn, systemd-networkd:

systemd-networkd:

systemd-storagetm:

systemd-pcrlock, systemd-pcrextend:

systemd-sleep:

Tools using the Varlink protocol (such as varlinkctl) or sd-bus (such as busctl):

systemd-mountfsd:

systemd-run, run0, systemd-nspawn, systemd-vmspawn: