On Sun, 13.01.13 12:28, David Herrmann ([email protected]) wrote:

> This makes journalctl quit on ferror() conditions on stdout. It fixes an
> annoying bug if you pipe its output through 'less' and press 'q'. Without
> this fix journalctl will continue reading all journal data until EOF which
> can take quite some time. For instance on my machine:

Applied! Thanks!

> 
>     david-nb ~ # time journalctl | wc -l
>     327240
> 
>     real    1m13.039s
>     user    1m0.217s
>     sys     0m10.467s
> 
> However, expected behavior is journalctl to quit when its pager closed the
> output pipe.
> 
> Signed-off-by: David Herrmann <[email protected]>
> ---
>  src/journal/journalctl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
> index a74d43b..45543a5 100644
> --- a/src/journal/journalctl.c
> +++ b/src/journal/journalctl.c
> @@ -1077,7 +1077,7 @@ int main(int argc, char *argv[]) {
>                                  arg_catalog * OUTPUT_CATALOG;
>  
>                          r = output_journal(stdout, j, arg_output, 0, flags);
> -                        if (r < 0)
> +                        if (r < 0 || ferror(stdout))
>                                  goto finish;
>  
>                          need_seek = true;


Lennart

-- 
Lennart Poettering - Red Hat, Inc.
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to