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.
This commit is contained in:
parent
1e6aba967c
commit
4e19fa9b64
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user