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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
> ---
>  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?




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux