chiark / gitweb /
logind: consider key inhibitors that are taken by non-session processes as global
authorLennart Poettering <lennart@poettering.net>
Fri, 5 Apr 2013 16:57:58 +0000 (18:57 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 5 Apr 2013 16:57:58 +0000 (18:57 +0200)
This should allow system services to take over key handling for all
sessions, globally.

src/login/logind-inhibit.c

index 9994084..c43ae23 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);
 }