mirror of
https://github.com/systemd/systemd.git
synced 2024-12-27 07:22:31 +03:00
pager: also redirect stderr
It's really confusing if stdout goes to the pager, but stderr is written directly to the screen. Hence, make sure both stdout and stderr are passed to the pager when doing autopaging.
This commit is contained in:
parent
6a7c676c54
commit
8b5264aa65
@ -129,6 +129,8 @@ int pager_open(bool jump_to_end) {
|
||||
/* Return in the parent */
|
||||
if (dup2(fd[1], STDOUT_FILENO) < 0)
|
||||
return log_error_errno(errno, "Failed to duplicate pager pipe: %m");
|
||||
if (dup2(fd[1], STDERR_FILENO) < 0)
|
||||
return log_error_errno(errno, "Failed to duplicate pager pipe: %m");
|
||||
|
||||
safe_close_pair(fd);
|
||||
return 1;
|
||||
@ -141,6 +143,11 @@ void pager_close(void) {
|
||||
|
||||
/* Inform pager that we are done */
|
||||
fclose(stdout);
|
||||
stdout = NULL;
|
||||
|
||||
fclose(stderr);
|
||||
stderr = NULL;
|
||||
|
||||
kill(pager_pid, SIGCONT);
|
||||
(void) wait_for_terminate(pager_pid, NULL);
|
||||
pager_pid = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user