From a70c72a0463a86ef952346304afe474add0302cf Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 15 Dec 2017 16:53:13 +0100 Subject: [PATCH] main: slightly rearrange serialization fdset, and logging/console setup Let's merge two if blocks, and move log_close()/log_open() out of the testing codepath, as there's no reason to have it there. --- src/core/main.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index 66270d4..27a4ebc 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -2408,11 +2408,12 @@ int main(int argc, char *argv[]) { /* Move out of the way, so that we won't block unmounts */ assert_se(chdir("/") == 0); - /* Close logging fds, in order not to confuse fdset below */ - log_close(); - - /* Remember open file descriptors for later deserialization */ if (arg_action == ACTION_RUN) { + + /* Close logging fds, in order not to confuse fdset below */ + log_close(); + + /* Remember open file descriptors for later deserialization */ r = fdset_new_fill(&fds); if (r < 0) { log_emergency_errno(r, "Failed to allocate fd set: %m"); @@ -2424,27 +2425,23 @@ int main(int argc, char *argv[]) { if (arg_serialization) assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0); - if (arg_system) + if (arg_system) { /* Become a session leader if we aren't one yet. */ setsid(); - } - /* Reset the console, but only if this is really init and we - * are freshly booted */ - if (arg_system && arg_action == ACTION_RUN) { + /* If we are init, we connect stdin/stdout/stderr to /dev/null and make sure we don't have a + * controlling tty. */ + release_terminal(); - /* If we are init, we connect stdin/stdout/stderr to - * /dev/null and make sure we don't have a controlling - * tty. */ - release_terminal(); + /* Reset the console, but only if this is really init and we are freshly booted */ + if (getpid_cached() == 1 && !skip_setup) + console_setup(); + } - if (getpid_cached() == 1 && !skip_setup) - console_setup(); + /* Open the logging devices, if possible and necessary */ + log_open(); } - /* Open the logging devices, if possible and necessary */ - log_open(); - if (arg_show_status == _SHOW_STATUS_UNSET) arg_show_status = SHOW_STATUS_YES; -- 2.7.4