chiark / gitweb /
logind: check whether newly created session is active
[elogind.git] / src / tty-ask-password-agent.c
index 4a29abacbbcc65e91b7b12c8394071f4312695ac..b620aa6ee3e5dece2d3ef4dd684f959272287f6d 100644 (file)
@@ -291,6 +291,13 @@ static int parse_password(const char *filename, char **wall) {
                 }
         }
 
+        if (pid > 0 &&
+            kill(pid, 0) < 0 &&
+            errno == ESRCH) {
+                r = 0;
+                goto finish;
+        }
+
         if (arg_action == ACTION_LIST)
                 printf("'%s' (PID %u)\n", message, pid);
         else if (arg_action == ACTION_WALL) {
@@ -426,7 +433,8 @@ static int wall_tty_block(void) {
         int fd, r;
         dev_t devnr;
 
-        if ((r = get_ctty_devnr(&devnr)) < 0)
+        r = get_ctty_devnr(0, &devnr);
+        if (r < 0)
                 return -r;
 
         if (asprintf(&p, "/run/systemd/ask-password-block/%u:%u", major(devnr), minor(devnr)) < 0)