diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/logs-show.c | 23 | ||||
-rw-r--r-- | src/shared/logs-show.h | 3 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 4c59ca34cd..697b5cf4b7 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -551,7 +551,8 @@ int show_journal_by_unit( usec_t not_before, unsigned how_many, bool show_all, - bool follow) { + bool follow, + bool warn_cutoff) { char *m = NULL; sd_journal *j = NULL; @@ -639,6 +640,26 @@ int show_journal_by_unit( goto finish; } + if (warn_cutoff && line < how_many && not_before > 0) { + sd_id128_t boot_id; + usec_t cutoff; + + /* Check whether the cutoff line is too early */ + + r = sd_id128_get_boot(&boot_id); + if (r < 0) + goto finish; + + r = sd_journal_get_cutoff_monotonic_usec(j, boot_id, &cutoff, NULL); + if (r < 0) + goto finish; + + if (not_before < cutoff) + printf("Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.\n"); + + warn_cutoff = false; + } + if (!follow) break; diff --git a/src/shared/logs-show.h b/src/shared/logs-show.h index 94caed5579..f8a9d406bd 100644 --- a/src/shared/logs-show.h +++ b/src/shared/logs-show.h @@ -48,7 +48,8 @@ int show_journal_by_unit( usec_t not_before, unsigned how_many, bool show_all, - bool follow); + bool follow, + bool warn_cutoff); const char* output_mode_to_string(OutputMode m); OutputMode output_mode_from_string(const char *s); |