Comment 15 for bug 1618886

Revision history for this message
Martin Pitt (pitti) wrote :

> To fix that, something like comment #3 is needed. Such as looping over all 'active' units that are PartOf graphical-session.target and stopping them all.

I think we would only need to "systemctl stop graphical-session.target" for this, otherwise a unit forgets the PartOf= and that loop would not work anyway.

> gnome-session needs a fix to its ExecStopPost to not kill the one we just started.

This is similar to waiting for "deactivating" units after *-session.target goes down. On the systemd sprint we just figured out a better scheme for this which solves that waiting, does not require this session ID tracking, and also gets rid of the manual starting of graphical-session-pre.target: Eventually we just want to declare in *-session.target that it comes After=graphical-session-pre.target and have this propagate to the dependencies (https://github.com/systemd/systemd/issues/3750). Until then we can just have a mini-generator do this for us. After we have the Requires/After=graphical-session-pre.target, then "systemctl stop graphical-session-pre.target" properly blocks until all "later" units are completely stopped.