Odd. I never brought this forward from bb.stable. Should handle
reaping child processes better.
-Erik
diff --git a/init/init.c b/init/init.c
index bb1f383..91a19c5 100644
--- a/init/init.c
+++ b/init/init.c
@@ -1141,7 +1141,7 @@
/* Wait for a child process to exit */
wpid = wait(&status);
- if (wpid > 0) {
+ while (wpid > 0) {
/* Find out who died and clean up their corpse */
for (a = init_action_list; a; a = a->next) {
if (a->pid == wpid) {
@@ -1152,6 +1152,8 @@
"Scheduling it for restart.\n", a->command, wpid);
}
}
+ /* see if anyone else is waiting to be reaped */
+ wpid = waitpid (-1, &status, WNOHANG);
}
}
}