procd: replace exit(-1) with exit(EXIT_FAILURE)
[project/procd.git] / initd / init.c
index e453cff21e426bc80bf7bc3cbf92df42aea0db80..9b4782608e1a7a9f411eaacfa9b97b2d6b3fe89c 100644 (file)
@@ -77,6 +77,7 @@ main(int argc, char **argv)
        sigaction(SIGTERM, &sa_shutdown, NULL);
        sigaction(SIGUSR1, &sa_shutdown, NULL);
        sigaction(SIGUSR2, &sa_shutdown, NULL);
+       sigaction(SIGPWR, &sa_shutdown, NULL);
 
        early();
        cmdline();
@@ -90,18 +91,19 @@ main(int argc, char **argv)
                        patch_stdio("/dev/null");
 
                execvp(kmod[0], kmod);
-               ERROR("Failed to start kmodloader\n");
-               exit(-1);
+               ERROR("Failed to start kmodloader: %m\n");
+               exit(EXIT_FAILURE);
        }
        if (pid <= 0) {
-               ERROR("Failed to start kmodloader instance\n");
+               ERROR("Failed to start kmodloader instance: %m\n");
        } else {
+               const struct timespec req = {0, 10 * 1000 * 1000};
                int i;
 
                for (i = 0; i < 1200; i++) {
                        if (waitpid(pid, NULL, WNOHANG) > 0)
                                break;
-                       usleep(10 * 1000);
+                       nanosleep(&req, NULL);
                        watchdog_ping();
                }
        }