From: Lennart Poettering Date: Mon, 24 Mar 2025 10:53:32 +0000 (-0400) Subject: journalctl: send READY=1 X-Git-Tag: v258-rc1~633^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a067173fd0b476da4bed54e27484d4d70b98d8b2;p=thirdparty%2Fsystemd.git journalctl: send READY=1 Allow callers to synchronize on the point in time where the journal file watches are fully established, in --follow mode. Tools can invoke journalctl using this, knowing that any log message happening after the READY=1 is definitely going to be processed by the journalctl invocation. --- diff --git a/man/journalctl.xml b/man/journalctl.xml index b977c7521ab..7146c9400f8 100644 --- a/man/journalctl.xml +++ b/man/journalctl.xml @@ -773,8 +773,13 @@ - Show only the most recent journal entries, and continuously print new entries as - they are appended to the journal. + Show only the most recent journal entries, and continuously print new entries as they + are appended to the journal, until Ctrl-C is hit (or the tool is otherwise terminated). + + journalctl will send an + sd_notify3 + READY=1 message once it initialized and successfully established its watch on the + journal. diff --git a/src/journal/journalctl-show.c b/src/journal/journalctl-show.c index 620f2fc6a8d..3519aa209ed 100644 --- a/src/journal/journalctl-show.c +++ b/src/journal/journalctl-show.c @@ -2,6 +2,7 @@ #include +#include "sd-daemon.h" #include "sd-event.h" #include "ansi-color.h" @@ -329,6 +330,7 @@ static int on_first_event(sd_event_source *s, void *userdata) { return log_error_errno(r, "Failed to get cursor: %m"); } + (void) sd_notify(/* unset_environment= */ false, "READY=1"); return 0; } @@ -486,6 +488,8 @@ int action_show(char **matches) { return sig; } + (void) sd_notify(/* unset_environment= */ false, "READY=1"); + r = show(&c); if (r < 0) return r;