diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-05-22 22:00:37 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-05-22 22:00:37 +0200 |
commit | a6903061530cac5fbaa99a080a93221c02c349f9 (patch) | |
tree | 63eea46db06faef4b04fd81b00596d40ac800abd /src/shared | |
parent | 399c5f96331ad5281fdb75a7c0c66cc703f7eeb6 (diff) |
log: make sure generators never log into the journal to avoid activation deadlocks
This makes all generators log to kmsg by default.
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/log.c | 5 | ||||
-rw-r--r-- | src/shared/log.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/shared/log.c b/src/shared/log.c index da5309888c..6a10dc4540 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -240,7 +240,7 @@ int log_open(void) { return 0; } - if (log_target != LOG_TARGET_AUTO || + if ((log_target != LOG_TARGET_AUTO && log_target != LOG_TARGET_SAFE) || getpid() == 1 || isatty(STDERR_FILENO) <= 0) { @@ -266,6 +266,7 @@ int log_open(void) { } if (log_target == LOG_TARGET_AUTO || + log_target == LOG_TARGET_SAFE || log_target == LOG_TARGET_JOURNAL_OR_KMSG || log_target == LOG_TARGET_SYSLOG_OR_KMSG || log_target == LOG_TARGET_KMSG) { @@ -547,6 +548,7 @@ static int log_dispatch( if (k <= 0 && (log_target == LOG_TARGET_AUTO || + log_target == LOG_TARGET_SAFE || log_target == LOG_TARGET_SYSLOG_OR_KMSG || log_target == LOG_TARGET_JOURNAL_OR_KMSG || log_target == LOG_TARGET_KMSG)) { @@ -744,6 +746,7 @@ static const char *const log_target_table[] = { [LOG_TARGET_SYSLOG] = "syslog", [LOG_TARGET_SYSLOG_OR_KMSG] = "syslog-or-kmsg", [LOG_TARGET_AUTO] = "auto", + [LOG_TARGET_SAFE] = "safe", [LOG_TARGET_NULL] = "null" }; diff --git a/src/shared/log.h b/src/shared/log.h index b2f5f2a920..59d4c00f7d 100644 --- a/src/shared/log.h +++ b/src/shared/log.h @@ -36,6 +36,7 @@ typedef enum LogTarget{ LOG_TARGET_SYSLOG, LOG_TARGET_SYSLOG_OR_KMSG, LOG_TARGET_AUTO, /* console if stderr is tty, JOURNAL_OR_KMSG otherwise */ + LOG_TARGET_SAFE, /* console if stderr is tty, KMSG otherwise */ LOG_TARGET_NULL, _LOG_TARGET_MAX, _LOG_TARGET_INVALID = -1 |