[BusyBox-cvs] busybox/init init.c,1.200,1.201

Erik Andersen andersen at busybox.net
Mon Apr 12 19:17:15 UTC 2004


Update of /var/cvs/busybox/init
In directory nail:/tmp/cvs-serv17726/init

Modified Files:
	init.c 
Log Message:
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.


Index: init.c
===================================================================
RCS file: /var/cvs/busybox/init/init.c,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- a/init.c	12 Apr 2004 17:59:23 -0000	1.200
+++ b/init.c	12 Apr 2004 19:17:13 -0000	1.201
@@ -1144,13 +1144,6 @@
 	/* 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 @@
 
 		/* 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) {




More information about the busybox-cvs mailing list