mirror of
https://github.com/systemd/systemd
synced 2024-10-07 00:30:59 +00:00
Merge pull request #17214 from poettering/log-generator-fix
fix logging in generators
This commit is contained in:
commit
8ce3de991b
|
@ -267,28 +267,39 @@ int log_open(void) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (log_target != LOG_TARGET_AUTO || getpid_cached() == 1 || stderr_is_journal()) {
|
||||
if (getpid_cached() == 1 ||
|
||||
stderr_is_journal() ||
|
||||
IN_SET(log_target,
|
||||
LOG_TARGET_KMSG,
|
||||
LOG_TARGET_JOURNAL,
|
||||
LOG_TARGET_JOURNAL_OR_KMSG,
|
||||
LOG_TARGET_SYSLOG,
|
||||
LOG_TARGET_SYSLOG_OR_KMSG)) {
|
||||
|
||||
if (!prohibit_ipc &&
|
||||
IN_SET(log_target, LOG_TARGET_AUTO,
|
||||
LOG_TARGET_JOURNAL_OR_KMSG,
|
||||
LOG_TARGET_JOURNAL)) {
|
||||
r = log_open_journal();
|
||||
if (r >= 0) {
|
||||
log_close_syslog();
|
||||
log_close_console();
|
||||
return r;
|
||||
if (!prohibit_ipc) {
|
||||
if (IN_SET(log_target,
|
||||
LOG_TARGET_AUTO,
|
||||
LOG_TARGET_JOURNAL_OR_KMSG,
|
||||
LOG_TARGET_JOURNAL)) {
|
||||
|
||||
r = log_open_journal();
|
||||
if (r >= 0) {
|
||||
log_close_syslog();
|
||||
log_close_console();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!prohibit_ipc &&
|
||||
IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG,
|
||||
LOG_TARGET_SYSLOG)) {
|
||||
r = log_open_syslog();
|
||||
if (r >= 0) {
|
||||
log_close_journal();
|
||||
log_close_console();
|
||||
return r;
|
||||
if (IN_SET(log_target,
|
||||
LOG_TARGET_SYSLOG_OR_KMSG,
|
||||
LOG_TARGET_SYSLOG)) {
|
||||
|
||||
r = log_open_syslog();
|
||||
if (r >= 0) {
|
||||
log_close_journal();
|
||||
log_close_console();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ typedef enum LogTarget{
|
|||
LOG_TARGET_JOURNAL_OR_KMSG,
|
||||
LOG_TARGET_SYSLOG,
|
||||
LOG_TARGET_SYSLOG_OR_KMSG,
|
||||
LOG_TARGET_AUTO, /* console if stderr is tty, JOURNAL_OR_KMSG otherwise */
|
||||
LOG_TARGET_AUTO, /* console if stderr is not journal, JOURNAL_OR_KMSG otherwise */
|
||||
LOG_TARGET_NULL,
|
||||
_LOG_TARGET_MAX,
|
||||
_LOG_TARGET_INVALID = -1
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue