X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fexecute.c;h=06eb15215df5f486c18e82e0e22c6303c9175ea7;hb=8e47d742a84967431333248dc819687e5aae39ee;hp=53f6d9ad06dcaf8169ef825278bae2753ebaae46;hpb=ff876e283a61320b718ec752d93b1fd40a5fdd0c;p=elogind.git diff --git a/src/execute.c b/src/execute.c index 53f6d9ad0..06eb15215 100644 --- a/src/execute.c +++ b/src/execute.c @@ -305,8 +305,8 @@ static int setup_output(const ExecContext *context, int socket_fd, const char *i return dup2(STDIN_FILENO, STDOUT_FILENO) < 0 ? -errno : STDOUT_FILENO; /* For PID 1 stdout is always connected to /dev/null, - * hence reopen the console if necessary. */ - if (getpid() == 1) + * hence reopen the console if out parent is PID1. */ + if (getppid() == 1) return open_terminal_as(tty_path(context), O_WRONLY, STDOUT_FILENO); return STDOUT_FILENO; @@ -352,7 +352,7 @@ static int setup_error(const ExecContext *context, int socket_fd, const char *id if (e == EXEC_OUTPUT_INHERIT && o == EXEC_OUTPUT_INHERIT && i != EXEC_INPUT_NULL && - getpid () != 1) + getppid () != 1) return STDERR_FILENO; /* Duplicate form stdout if possible */