diff options
-rw-r--r-- | include/libbb.h | 6 | ||||
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 3 | ||||
-rw-r--r-- | runit/runsv.c | 5 | ||||
-rw-r--r-- | runit/sv.c | 2 | ||||
-rw-r--r-- | runit/svlogd.c | 2 |
5 files changed, 7 insertions, 11 deletions
diff --git a/include/libbb.h b/include/libbb.h index 963e2af28..62a60f9f4 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -765,12 +765,8 @@ pid_t safe_waitpid(pid_t pid, int *wstat, int options) FAST_FUNC; */ int wait4pid(pid_t pid) FAST_FUNC; pid_t wait_any_nohang(int *wstat) FAST_FUNC; -#define wait_crashed(w) ((w) & 127) -#define wait_exitcode(w) ((w) >> 8) -#define wait_stopsig(w) ((w) >> 8) -#define wait_stopped(w) (((w) & 127) == 127) /* wait4pid(spawn(argv)) + NOFORK/NOEXEC (if configured) */ -pid_t spawn_and_wait(char **argv) FAST_FUNC; +int spawn_and_wait(char **argv) FAST_FUNC; struct nofork_save_area { jmp_buf die_jmp; const char *applet_name; diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index f64239a96..72edfc70d 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -256,8 +256,7 @@ pid_t FAST_FUNC fork_or_rexec(char **argv) pid_t pid; /* Maybe we are already re-execed and come here again? */ if (re_execed) - return 0; /* child */ - + return 0; pid = vfork(); if (pid < 0) /* wtf? */ bb_perror_msg_and_die("vfork"); diff --git a/runit/runsv.c b/runit/runsv.c index 6d34dc133..5cb5d2f13 100644 --- a/runit/runsv.c +++ b/runit/runsv.c @@ -252,7 +252,8 @@ static unsigned custom(struct svdir *s, char c) char a[10]; struct stat st; - if (s->islog) return 0; + if (s->islog) + return 0; strcpy(a, "control/?"); a[8] = c; /* replace '?' */ if (stat(a, &st) == 0) { @@ -274,7 +275,7 @@ static unsigned custom(struct svdir *s, char c) warn_cannot("wait for child control/?"); return 0; } - return !wait_exitcode(w); + return WEXITSTATUS(w) == 0; } } else { if (errno != ENOENT) diff --git a/runit/sv.c b/runit/sv.c index 20e86199a..e3b9a4e31 100644 --- a/runit/sv.c +++ b/runit/sv.c @@ -337,7 +337,7 @@ static int checkscript(void) bb_perror_msg(WARN"cannot %s child %s/check", "wait for", *service); return 0; } - return !wait_exitcode(w); + return WEXITSTATUS(w) == 0; } static int check(const char *a) diff --git a/runit/svlogd.c b/runit/svlogd.c index 9609fa37c..25799f6be 100644 --- a/runit/svlogd.c +++ b/runit/svlogd.c @@ -281,7 +281,7 @@ static unsigned processorstop(struct logdir *ld) if (ld->fddir == -1) return 1; while (fchdir(ld->fddir) == -1) pause2cannot("change directory, want processor", ld->name); - if (wait_exitcode(wstat) != 0) { + if (WEXITSTATUS(wstat) != 0) { warnx("processor failed, restart", ld->name); ld->fnsave[26] = 't'; unlink(ld->fnsave); |