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

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

 



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;
+    }
+
     g_atomic_int_set(&virSystemdHasLogindCachedValue, ret);
     return ret;
 }
-- 
2.40.1




[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