int fd;
/* child */
- bb_signals(0
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*bb_signals(0
+ (1 << SIGTERM)
+ (1 << SIGALRM)
+ (1 << SIGHUP)
- , SIG_DFL);
+ , SIG_DFL);*/
sig_unblock(SIGTERM);
sig_unblock(SIGALRM);
sig_unblock(SIGHUP);
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);
static void sig_child_handler(int sig_no UNUSED_PARAM)
{
- int pid, l;
+ pid_t pid;
+ int l;
if (verbose)
bb_error_msg(INFO"sig%s received", "child");
sigaddset(&blocked_sigset, SIGALRM);
sigaddset(&blocked_sigset, SIGHUP);
sigprocmask(SIG_BLOCK, &blocked_sigset, NULL);
- bb_signals_recursive(1 << SIGTERM, sig_term_handler);
- bb_signals_recursive(1 << SIGCHLD, sig_child_handler);
- bb_signals_recursive(1 << SIGALRM, sig_alarm_handler);
- bb_signals_recursive(1 << SIGHUP, sig_hangup_handler);
+ bb_signals_recursive_norestart(1 << SIGTERM, sig_term_handler);
+ bb_signals_recursive_norestart(1 << SIGCHLD, sig_child_handler);
+ bb_signals_recursive_norestart(1 << SIGALRM, sig_alarm_handler);
+ bb_signals_recursive_norestart(1 << SIGHUP, sig_hangup_handler);
logdirs_reopen();