chiark / gitweb /
Do no isolate in case of emergency or severe problems
[elogind.git] / src / core / main.c
index 21c0d274c615117f3bf9ba6f3f7cb4d43c3881fc..35cd7724c30d926276538aebea07a4b079e1f515 100644 (file)
@@ -116,7 +116,8 @@ _noreturn_ static void crash(int sig) {
                 sa.sa_flags = SA_NOCLDSTOP|SA_RESTART;
                 assert_se(sigaction(SIGCHLD, &sa, NULL) == 0);
 
-                if ((pid = fork()) < 0)
+                pid = fork();
+                if (pid < 0)
                         log_error("Caught <%s>, cannot fork for core dump: %s", signal_to_string(sig), strerror(errno));
 
                 else if (pid == 0) {
@@ -147,7 +148,8 @@ _noreturn_ static void crash(int sig) {
                         int r;
 
                         /* Order things nicely. */
-                        if ((r = wait_for_terminate(pid, &status)) < 0)
+                        r = wait_for_terminate(pid, &status);
+                        if (r < 0)
                                 log_error("Caught <%s>, waitpid() failed: %s", signal_to_string(sig), strerror(-r));
                         else if (status.si_code != CLD_DUMPED)
                                 log_error("Caught <%s>, core dump failed.", signal_to_string(sig));
@@ -1310,19 +1312,13 @@ int main(int argc, char *argv[]) {
         /* Determine if this is a reexecution or normal bootup. We do
          * the full command line parsing much later, so let's just
          * have a quick peek here. */
-        for (j = 1; j < argc; j++)
-                if (streq(argv[j], "--deserialize")) {
-                        skip_setup = true;
-                        break;
-                }
+        if (strv_find(argv+1, "--deserialize"))
+                skip_setup = true;
 
         /* If we have switched root, do all the special setup
          * things */
-        for (j = 1; j < argc; j++)
-                if (streq(argv[j], "--switched-root")) {
-                        skip_setup = false;
-                        break;
-                }
+        if (strv_find(argv+1, "--switched-root"))
+                skip_setup = false;
 
         /* If we get started via the /sbin/init symlink then we are
            called 'init'. After a subsequent reexecution we are then
@@ -1579,10 +1575,9 @@ int main(int argc, char *argv[]) {
 
         /* Make sure we leave a core dump without panicing the
          * kernel. */
-        if (getpid() == 1)
+        if (getpid() == 1) {
                 install_crash_handler();
 
-        if (getpid() == 1) {
                 r = mount_cgroup_controllers(arg_join_controllers);
                 if (r < 0)
                         goto finish;