X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftty-ask-password-agent.c;h=b620aa6ee3e5dece2d3ef4dd684f959272287f6d;hb=e025b4c306d4b0895786839ebbb934188edc6e61;hp=4a29abacbbcc65e91b7b12c8394071f4312695ac;hpb=7dcda352a609d063098e238db09c03cdc25c564b;p=elogind.git diff --git a/src/tty-ask-password-agent.c b/src/tty-ask-password-agent.c index 4a29abacb..b620aa6ee 100644 --- a/src/tty-ask-password-agent.c +++ b/src/tty-ask-password-agent.c @@ -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)