From b8d0ffc21f9c237cdeef49b1873b47df1a0a1543 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 23 Dec 2013 17:56:44 +0100 Subject: [PATCH] log: als turn on debug logging in non-PID1 if /proc/cmdline contains "debug" --- src/core/main.c | 1 - src/shared/log.c | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/core/main.c b/src/core/main.c index 5189833e4..064445d17 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -462,7 +462,6 @@ DEFINE_SETTER(config_parse_target, log_set_target_from_string, "target") DEFINE_SETTER(config_parse_color, log_show_color_from_string, "color" ) DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location") - static int config_parse_cpu_affinity2(const char *unit, const char *filename, unsigned line, diff --git a/src/shared/log.c b/src/shared/log.c index 268f0340a..2a075ffeb 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -879,7 +879,24 @@ int log_set_max_level_from_string(const char *e) { } void log_parse_environment(void) { + _cleanup_free_ char *line = NULL; const char *e; + int r; + + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline. Ignoring: %s", strerror(-r)); + else if (r > 0) { + char *w, *state; + size_t l; + + FOREACH_WORD_QUOTED(w, l, line, state) { + if (l == 5 && startswith(w, "debug")) { + log_set_max_level(LOG_DEBUG); + break; + } + } + } e = secure_getenv("SYSTEMD_LOG_TARGET"); if (e && log_set_target_from_string(e) < 0) -- 2.30.2