]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
main: slightly rearrange serialization fdset, and logging/console setup
authorLennart Poettering <lennart@poettering.net>
Fri, 15 Dec 2017 15:53:13 +0000 (16:53 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 15 Dec 2017 19:52:28 +0000 (20:52 +0100)
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

index 66270d4e0d1282fad087d0862d378d8769b9bf33..27a4ebc59e1b578d2c7d8fa970715d2abeca44ba 100644 (file)
@@ -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;