[systemd-devel] Should long-running child processes clear INVOCATION_ID?
Simon McVittie
smcv at collabora.com
Fri Mar 2 15:16:53 UTC 2018
When dbus-daemon carries out a mixture of systemd and traditional
(non-systemd) activation, we get a process tree like this:
systemd --user (init.scope)
|- dbus-daemon --session (dbus.service)
| |- (babysitter process)
| | \- gnome-shell-calendar-server [t]
| \- (babysitter process)
| \- dleyna-renderer-service [t]
|- gnome-terminal-server (g-t-s.service) [s]
\- xdg-document-portal (x-d-p.service) [s]
[s]: systemd activation; [t]: traditional activation
or the equivalent for the system bus.
As of current git master, the dbus-daemon removes some of its environment
variables from the environment passed to traditional D-Bus services
like gnome-shell-calendar-server, because they are applicable to to the
dbus-daemon but not the child. In particular JOURNAL_STREAM, LISTEN_*
and NOTIFY_SOCKET get this treatment.
However, it wasn't clear to me what this code should do with the
INVOCATION_ID. Would it be better (less misleading) to say that
gnome-shell-calendar-server is part of the same INVOCATION_ID as its
dbus-daemon parent, or to say that it has no invocation ID?
Thanks,
smcv
More information about the systemd-devel
mailing list