Zbigniew Jędrzejewski-Szmek 126222
From df5013c79d99848730abe4585dd93f77409a95c0 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 126222
From: Lennart Poettering <lennart@poettering.net>
Zbigniew Jędrzejewski-Szmek 126222
Date: Wed, 18 Dec 2013 05:07:34 +0100
Zbigniew Jędrzejewski-Szmek 126222
Subject: [PATCH] log: don't reopen /dev/console each time we call log_open()
Zbigniew Jędrzejewski-Szmek 126222
Zbigniew Jędrzejewski-Szmek 126222
Instead, force reopen it only if we really really have to.
Zbigniew Jędrzejewski-Szmek 126222
---
Zbigniew Jędrzejewski-Szmek 126222
 src/core/main.c     | 1 +
Zbigniew Jędrzejewski-Szmek 126222
 src/core/shutdown.c | 1 +
Zbigniew Jędrzejewski-Szmek 126222
 src/shared/log.c    | 2 --
Zbigniew Jędrzejewski-Szmek 126222
 3 files changed, 2 insertions(+), 2 deletions(-)
Zbigniew Jędrzejewski-Szmek 126222
Zbigniew Jędrzejewski-Szmek 126222
diff --git a/src/core/main.c b/src/core/main.c
Zbigniew Jędrzejewski-Szmek 126222
index 58c3a9e..935762f 100644
Zbigniew Jędrzejewski-Szmek 126222
--- a/src/core/main.c
Zbigniew Jędrzejewski-Szmek 126222
+++ b/src/core/main.c
Zbigniew Jędrzejewski-Szmek 126222
@@ -1347,6 +1347,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 126222
                 /* Running inside a container, as PID 1 */
Zbigniew Jędrzejewski-Szmek 126222
                 arg_running_as = SYSTEMD_SYSTEM;
Zbigniew Jędrzejewski-Szmek 126222
                 log_set_target(LOG_TARGET_CONSOLE);
Zbigniew Jędrzejewski-Szmek 126222
+                log_close_console(); /* force reopen of /dev/console */
Zbigniew Jędrzejewski-Szmek 126222
                 log_open();
Zbigniew Jędrzejewski-Szmek 126222
 
Zbigniew Jędrzejewski-Szmek 126222
                 /* For the later on, see above... */
Zbigniew Jędrzejewski-Szmek 126222
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
Zbigniew Jędrzejewski-Szmek 126222
index ea02b60..5e0f3ce 100644
Zbigniew Jędrzejewski-Szmek 126222
--- a/src/core/shutdown.c
Zbigniew Jędrzejewski-Szmek 126222
+++ b/src/core/shutdown.c
Zbigniew Jędrzejewski-Szmek 126222
@@ -155,6 +155,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 126222
 
Zbigniew Jędrzejewski-Szmek 126222
         log_parse_environment();
Zbigniew Jędrzejewski-Szmek 126222
         log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */
Zbigniew Jędrzejewski-Szmek 126222
+        log_close_console(); /* force reopen of /dev/console */
Zbigniew Jędrzejewski-Szmek 126222
         log_open();
Zbigniew Jędrzejewski-Szmek 126222
 
Zbigniew Jędrzejewski-Szmek 126222
         umask(0022);
Zbigniew Jędrzejewski-Szmek 126222
diff --git a/src/shared/log.c b/src/shared/log.c
Zbigniew Jędrzejewski-Szmek 126222
index 8f4995a..bd918fb 100644
Zbigniew Jędrzejewski-Szmek 126222
--- a/src/shared/log.c
Zbigniew Jędrzejewski-Szmek 126222
+++ b/src/shared/log.c
Zbigniew Jędrzejewski-Szmek 126222
@@ -272,8 +272,6 @@ int log_open(void) {
Zbigniew Jędrzejewski-Szmek 126222
         log_close_journal();
Zbigniew Jędrzejewski-Szmek 126222
         log_close_syslog();
Zbigniew Jędrzejewski-Szmek 126222
 
Zbigniew Jędrzejewski-Szmek 126222
-        /* Get the real /dev/console if we are PID=1, hence reopen */
Zbigniew Jędrzejewski-Szmek 126222
-        log_close_console();
Zbigniew Jędrzejewski-Szmek 126222
         return log_open_console();
Zbigniew Jędrzejewski-Szmek 126222
 }
Zbigniew Jędrzejewski-Szmek 126222