journalctl -f redirected to a pipe or file wasn't working for some
output formats but was working for json. It turns out only json was
doing an fflush.
Make all output formats flush.
---
src/shared/logs-show.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 60eb896..cafddf7 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -521,7 +521,6 @@ static int output_json(sd_journal *j, unsigned line,
}
fputs("\n}", stdout);
-fflush(stdout);
return 0;
}
@@ -560,13 +559,16 @@ static int
(*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line,
int output_journal(sd_journal *j, OutputMode mode, unsigned line,
unsigned n_columns, OutputFlags flags) {
+int ret;
assert(mode >= 0);
assert(mode < _OUTPUT_MODE_MAX);
if (n_columns <= 0)
n_columns = columns();
-return output_funcs[mode](j, line, n_columns, flags);
+ret = output_funcs[mode](j, line, n_columns, flags);
+fflush(stdout);
+return ret;
}
int show_journal_by_unit(
--
1.7.11.4
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel