[libvirt PATCH 7/9] util: relax requirement for logind to be running

Daniel P. Berrangé berrange at redhat.com
Thu Jun 22 08:49:41 UTC 2023


On Thu, Jun 22, 2023 at 10:23:57AM +0200, Peter Krempa wrote:
> On Wed, Jun 21, 2023 at 14:32:30 +0100, Daniel P. Berrangé wrote:
> > Historically we wanted to check if logind was actually running, not
> > merely activatable, because on systems where systemd is installed,
> > but the OS is booted into non-systemd init, we want to fallback to
> > pm-utils.
> > 
> > Requiring logind to be running, however, forces us to serialize libvirtd
> > startup on startup of logind which is undesirable. We can relax this
> > dependancy if we check whether systemd itself is running, which implies
> > that logind will activated when we need it.
> > 
> > https://gitlab.com/libvirt/libvirt/-/issues/489
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> > ---
> >  src/util/virsystemd.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/src/util/virsystemd.c b/src/util/virsystemd.c
> > index 3112a1ba80..cd4de0eef8 100644
> > --- a/src/util/virsystemd.c
> > +++ b/src/util/virsystemd.c
> > @@ -184,9 +184,21 @@ virSystemdHasLogind(void)
> >          return ret;
> >      }
> >  
> > +    /*
> > +     * Want to use logind if:
> > +     *   - logind is already running
> > +     * Or
> > +     *   - logind is not running, but this is a systemd host
> > +     *     (rely on dbus activation)
> > +     */
> >      if ((ret = virGDBusIsServiceRegistered("org.freedesktop.login1")) == -1)
> >          return ret;
> >  
> > +    if (ret == -2) {
> > +        if ((ret = virGDBusIsServiceRegistered("org.freedesktop.systemd1")) == -1)
> > +            return ret;
> > +    }
> 
> Why not simply just check that we are on a systemd host? Can logind be
> used without systemd?

I believe it can. I recall that when Debian supported a choice between
systemd and sysvinit, logind could still be used in the sysvinit
scenario in order to support GNOME which had a mandatory dep on logind.

So I wasn't comfortable entirely removing the check for logind.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


More information about the libvir-list mailing list