int nclients, clientssize;
int dormant;
+int child_exited_abnormally = 0;
+int child_pid, child_signal, child_status;
void reapchild(int x);
void godormant(int x);
if (takedown)
break;
+
+ if (child_exited_abnormally)
+ {
+ critical_alert("moirad", "%d: child exits with signal %d status %d",
+ child_pid, child_signal, child_status);
+ child_exited_abnormally = 0;
+ }
+
time(&now);
if (!inc_running || now - inc_started > INC_TIMEOUT)
next_incremental();
inc_running = 0;
if (!takedown && (WTERMSIG(status) != 0 || WEXITSTATUS(status) != 0))
{
- critical_alert("moirad", "%d: child exits with signal %d status %d",
- pid, WTERMSIG(status), WEXITSTATUS(status));
+ child_exited_abnormally = 1;
+ child_pid = pid;
+ child_signal = WTERMSIG(status);
+ child_status = WEXITSTATUS(status);
}
}
}