From b3d6eb01653f249cd8df898525c4565dcaf082bf Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Fri, 4 Dec 2020 09:48:52 +0100 Subject: [PATCH] journal: send journald logs to kmsg again This was broken by commit bc694c06e60505efeb09e5278a7b22cdfa23975e. --- src/journal/journald.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/journal/journald.c b/src/journal/journald.c index ef7cebce34c..cfbaf366a9c 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -15,6 +15,7 @@ int main(int argc, char *argv[]) { const char *namespace; + LogTarget log_target; Server server; int r; @@ -25,8 +26,13 @@ int main(int argc, char *argv[]) { namespace = argc > 1 ? empty_to_null(argv[1]) : NULL; - log_set_prohibit_ipc(true); - log_set_target(LOG_TARGET_AUTO); + /* So here's the deal: journald can't be considered as regular daemon when it comes to + * logging hence LOG_TARGET_AUTO won't do the right thing for it. Hence explicitly log to + * the console if we're started from a console or to kmsg otherwise. */ + log_target = isatty(STDERR_FILENO) > 0 ? LOG_TARGET_CONSOLE : LOG_TARGET_KMSG; + + log_set_prohibit_ipc(true); /* better safe than sorry */ + log_set_target(log_target); log_set_facility(LOG_SYSLOG); log_parse_environment(); log_open(); -- 2.47.3