Hello Ludo, Ludovic Courtès writes: > The patch below address that: it changes the “Exec=” line of > ‘org.freedesktop.login1’ to refer to a wrapper. That wrapper connects > to shepherd and waits until ‘elogind’ is started. > > That way, if dbus-daemon comes first, it won’t actually launch anything > and instead wait for the Shepherd ‘elogind’ service to be up. (And if > it comes second, dbus-daemon won’t try to launch anything, so no > spurious “already running” messages.) > > I tested it in a ‘desktop.tmpl’ VM, quickly logging in on tty1. On > /var/log/messages, you can see the “Activating ….login1” message from > dbus-daemon, followed by “Service elogind started” from shepherd, > followed by “Successfully activated ….login1” from dbus-daemon. > > The “elogind” system test passes too. > > Thoughts? Objections? > > Ludo’. Great idea! The patch LGTM, although I'd argue that most of the wrapper code could belong in (gnu services herd), in something like (wait-for-services #:select? select? #:retries (n 20)) so that someone else doesn't end up recoding this for another service. Best, -- Josselin Poiret