From: Eric Andersen Date: Mon, 12 Apr 2004 19:17:13 +0000 (-0000) Subject: As reported by Quy Tonthat, init has problems with inittab's that X-Git-Tag: 1_00_pre10~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4e19fa9b644065c112da3472ab6ce3a938cc1ac8;p=oweals%2Fbusybox.git As reported by Quy Tonthat, init has problems with inittab's that contain only actions sysinit/wait/once. It does not clean up zombies in that case. --- diff --git a/init/init.c b/init/init.c index ae2fd4c3a..fd1443e44 100644 --- a/init/init.c +++ b/init/init.c @@ -1144,13 +1144,6 @@ extern int init_main(int argc, char **argv) /* Next run anything to be run only once */ run_actions(ONCE); - /* If there is nothing else to do, stop */ - if (init_action_list == NULL) { - message(LOG | CONSOLE, - "No more tasks for init -- sleeping forever."); - loop_forever(); - } - /* Redefine SIGHUP to reread /etc/inittab */ signal(SIGHUP, reload_signal); @@ -1167,7 +1160,7 @@ extern int init_main(int argc, char **argv) /* Wait for a child process to exit */ wpid = wait(&status); - while (wpid > 0) { + while (init_action_list && wpid > 0) { /* Find out who died and clean up their corpse */ for (a = init_action_list; a; a = a->next) { if (a->pid == wpid) {