chiark / gitweb /
logind: consider key inhibitors that are taken by non-session processes as global
[elogind.git] / src / login / logind-inhibit.c
index 9994084f93dc3d41427a6de22e0153a629213256..c43ae23acf6adf8d76b4ccf4bbe1b0510c9352ee 100644 (file)
@@ -354,9 +354,14 @@ static int pid_is_active(Manager *m, pid_t pid) {
         int r;
 
         r = manager_get_session_by_pid(m, pid, &s);
-        if (r <= 0)
+        if (r < 0)
                 return r;
 
+        /* If there's no session assigned to it, then it's globally
+         * active on all ttys */
+        if (r == 0)
+                return 1;
+
         return session_is_active(s);
 }