log: don't reopen /dev/console each time we call log_open()
authorLennart Poettering <lennart@poettering.net>
Wed, 18 Dec 2013 04:07:34 +0000 (05:07 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 18 Dec 2013 17:21:27 +0000 (18:21 +0100)
Instead, force reopen it only if we really really have to.

src/core/main.c
src/core/shutdown.c
src/shared/log.c

index eb5413e..e00d070 100644 (file)
@@ -1328,6 +1328,7 @@ int main(int argc, char *argv[]) {
                 /* Running inside a container, as PID 1 */
                 arg_running_as = SYSTEMD_SYSTEM;
                 log_set_target(LOG_TARGET_CONSOLE);
+                log_close_console(); /* force reopen of /dev/console */
                 log_open();
 
                 /* For the later on, see above... */
index 31129b7..8420a67 100644 (file)
@@ -155,6 +155,7 @@ int main(int argc, char *argv[]) {
 
         log_parse_environment();
         log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */
+        log_close_console(); /* force reopen of /dev/console */
         log_open();
 
         umask(0022);
index 2517f5d..85ed6ec 100644 (file)
@@ -272,8 +272,6 @@ int log_open(void) {
         log_close_journal();
         log_close_syslog();
 
-        /* Get the real /dev/console if we are PID=1, hence reopen */
-        log_close_console();
         return log_open_console();
 }