diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-02-27 19:51:57 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-02-27 19:52:08 +0100 |
commit | 1a8f0ce64fd205960dc92305dc42ba3bf5d71902 (patch) | |
tree | 72853b75fc6945ab513fde51668cb086e38c7102 /src/shared/logs-show.c | |
parent | man/systemd.unit: Add missing article to `Wants=` description (diff) | |
download | systemd-1a8f0ce64fd205960dc92305dc42ba3bf5d71902.tar.xz systemd-1a8f0ce64fd205960dc92305dc42ba3bf5d71902.zip |
systemctl: be more specific when emitting warning about rotated journal
See inline comment for disucssion.
Fixes #14281.
Diffstat (limited to '')
-rw-r--r-- | src/shared/logs-show.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 605412aec5..b83f543ba8 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -20,6 +20,7 @@ #include "id128-util.h" #include "io-util.h" #include "journal-internal.h" +#include "journal-util.h" #include "json.h" #include "log.h" #include "logs-show.h" @@ -1232,7 +1233,21 @@ int show_journal( if (r > 0 && not_before < cutoff) { maybe_print_begin_newline(f, &flags); - fprintf(f, "Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.\n"); + + /* If we logged *something* and no permission error happened, than we can + * reliably emit the warning about rotation. If we didn't log anything and + * access errors happened, emit hint about permissions. Otherwise, give a + * generic message, since we can't diagnose the issue. */ + + bool noaccess = journal_access_blocked(j); + + if (line == 0 && noaccess) + fprintf(f, "Warning: some journal files were not opened due to insufficient permissions."); + else if (!noaccess) + fprintf(f, "Warning: journal has been rotated since unit was started, output may be incomplete.\n"); + else + fprintf(f, "Warning: journal has been rotated since unit was started and some journal " + "files were not opened due to insufficient permissions, output may be incomplete.\n"); } warn_cutoff = false; |