From: Lennart Poettering Date: Fri, 15 Dec 2017 15:53:13 +0000 (+0100) Subject: main: slightly rearrange serialization fdset, and logging/console setup X-Git-Tag: v237~209^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a70c72a0463a86ef952346304afe474add0302cf;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/core/main.c b/src/core/main.c index 66270d4e0d1..27a4ebc59e1 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;