From 911017f0526df9d1477588afb1f26afacdab9511 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 13 Jul 2022 18:43:05 +0200 Subject: [PATCH] generators: only redirect logging when invoked by systemd MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We would always print output to the kmsg or journal, but that is only needed and useful when invoked by systemd. So let's skip redirection unless we are invoked by systemd. Otherwise, let's log normally. This makes test invocations easier, and also helps when the generator is invoked by mistake. If redirection is necessary, the generator can be invoked with SYSTEMD_LOG_TARGET=… even during tests. --- src/shared/generator.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/shared/generator.c b/src/shared/generator.c index ca66673d841..12170d3642b 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -15,6 +15,7 @@ #include "macro.h" #include "mkdir-label.h" #include "path-util.h" +#include "process-util.h" #include "special.h" #include "specifier.h" #include "string-util.h" @@ -737,11 +738,15 @@ int generator_write_veritysetup_service_section( } void log_setup_generator(void) { - /* Disable talking to syslog/journal (i.e. the two IPC-based loggers) if we run in system context. */ - if (cg_pid_get_owner_uid(0, NULL) == -ENXIO /* not running in a per-user slice */) - log_set_prohibit_ipc(true); + if (invoked_by_systemd()) { + /* Disable talking to syslog/journal (i.e. the two IPC-based loggers) if we run in system context. */ + if (cg_pid_get_owner_uid(0, NULL) == -ENXIO /* not running in a per-user slice */) + log_set_prohibit_ipc(true); + + /* This effectively means: journal for per-user generators, kmsg otherwise */ + log_set_target(LOG_TARGET_JOURNAL_OR_KMSG); + } - log_set_target(LOG_TARGET_JOURNAL_OR_KMSG); /* This effectively means: journal for per-user generators, kmsg otherwise */ log_parse_environment(); (void) log_open(); } -- 2.47.3