summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-09-30 16:19:12 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-12-08 18:08:31 +0100
commit599f51fde46875c34875da27de647caa2cd27f2e (patch)
tree15bad204bb118407d23e2c6a8fcd55793a194dda
parent6f58e84284499442756d3a3891d63f941df12120 (diff)
downloadsystemd-599f51fde46875c34875da27de647caa2cd27f2e.tar.gz
generator: use kmsg in system-level generators, journal otherwisev246.7
Fixes: #17129. (cherry picked from commit dee29aeb5909f4f5604012ced250488286b8d468) https://github.com/systemd/systemd-stable/issues/76
-rw-r--r--src/shared/generator.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/shared/generator.c b/src/shared/generator.c
index 04d2f86a4a..d61b367d33 100644
--- a/src/shared/generator.c
+++ b/src/shared/generator.c
@@ -4,6 +4,7 @@
#include <unistd.h>
#include "alloc-util.h"
+#include "cgroup-util.h"
#include "dropin.h"
#include "escape.h"
#include "fd-util.h"
@@ -620,6 +621,11 @@ int generator_write_cryptsetup_service_section(
}
void log_setup_generator(void) {
- log_set_prohibit_ipc(true);
- log_setup_service();
+ /* 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);
+
+ log_set_target(LOG_TARGET_JOURNAL_OR_KMSG); /* This effectively means: journal for per-user generators, kmsg otherwise */
+ log_parse_environment();
+ (void) log_open();
}