dbus-update-activation-environment — update environment used for D-Bus session services
dbus-update-activation-environment updates the list of environment variables used by dbus-daemon --session when it activates session services without using systemd.
With the --systemd
option,
if an instance of systemd --user is
available on D-Bus, it also updates the list of environment variables
used by systemd --user
when it activates user services, including D-Bus session services
for which dbus-daemon has been configured to
delegate activation to systemd.
This is very similar to the import-environment
command provided by
systemctl(1)).
Variables that are special to dbus-daemon
or systemd may be set, but their values will
be overridden when a service is started. For instance, it is
not useful to add DBUS_SESSION_BUS_ADDRESS
to
dbus-daemon's activation environment,
although it might still be useful to add it to
systemd's activation environment.
--all
Set all environment variables present in the environment used by dbus-update-activation-environment.
--systemd
Set environment variables for systemd user services as well as for traditional D-Bus session services.
--verbose
Output messages to standard error explaining what dbus-update-activation-environment is doing.
VAR
If VAR
is present in the
environment of dbus-update-activation-environment,
set it to the same value for D-Bus services. Its value must be
UTF-8 (if not, it is skipped with a warning). If
VAR
is not present
in the environment, this argument is silently ignored.
VAR
=VAL
Set VAR
to VAL
,
which must be UTF-8.
dbus-update-activation-environment is primarily designed to be used in Linux distributions' X11 session startup scripts, in conjunction with the "user bus" design.
To propagate DISPLAY
and XAUTHORITY
to dbus-daemon
and, if present, systemd,
and propagate DBUS_SESSION_BUS_ADDRESS
to
systemd:
dbus-update-activation-environment --systemd \ DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
To propagate all environment variables except
XDG_SEAT
, XDG_SESSION_ID
and XDG_VTNR
to dbus-daemon
(and, if present, systemd) for compatibility
with legacy X11 session startup scripts:
# in a subshell so the variables remain set in the # parent script ( unset XDG_SEAT unset XDG_SESSION_ID unset XDG_VTNR dbus-update-activation-environment --systemd --all )
dbus-update-activation-environment exits with status 0 on success, EX_USAGE (64) on invalid command-line options, EX_OSERR (71) if unable to connect to the session bus, or EX_UNAVAILABLE (69) if unable to set the environment variables. Other nonzero exit codes might be added in future versions.
DBUS_SESSION_BUS_ADDRESS
,
XDG_RUNTIME_DIR
and/or DISPLAY
are used to find the address of the session bus.
dbus-daemon does not provide a way to unset environment variables after they have been set (although systemd does), so dbus-update-activation-environment does not offer this functionality either.
POSIX does not specify the encoding of non-ASCII environment variable names or values and allows them to contain any non-zero byte, but neither dbus-daemon nor systemd supports environment variables with non-UTF-8 names or values. Accordingly, dbus-update-activation-environment assumes that any name or value that appears to be valid UTF-8 is intended to be UTF-8, and ignores other names or values with a warning.
Please send bug reports to the D-Bus bug tracker or mailing list. See https://www.freedesktop.org/wiki/Software/dbus/.