[systemd-devel] Standardizing names for graphical session units
Martin Pitt
martin.pitt at ubuntu.com
Wed Jul 6 13:21:45 UTC 2016
Martin Pitt [2016-07-06 13:47 +0200]:
> Simon McVittie [2016-07-05 10:27 +0100]:
> > Could this be done by having the .desktop file in /usr/share/xsessions
> > or /usr/share/wayland-sessions start an appropriate systemd user unit
> > directly, and wait for it to terminate?
>
> There is currently no command (other than a polling loop) to wait
> until a particular unit gets stopped. I. e.
>
> Exec=gnome-session --session=gnome
>
> would need to be replaced with something like
>
> Exec=/bin/sh -c "systemctl start gnome-session.target; wait-until-service-stopped gnome-session.service; systemctl stop gnome-session.target"
[...]
> I have a gut feeling that this should be expressible with systemd
> dependencies -- i. e. "if gnome-session.service stops, then stop
> gnome-session.target".
The v3 approach now does this, so the above would reduce to something
like
Exec=/bin/sh -c 'systemctl start gnome-session.target; systemctl wait-unit gnome-session.target'
for a hypothetical "wait-unit" verb which blocks until the given unit
stops. Or perhaps even
Exec=systemctl start --wait-until-stopped gnome-session.target
Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
More information about the systemd-devel
mailing list