[BusyBox 0000379]: Control-C (SIGINT) is ignored or creates zombie processes
bugs at busybox.net
bugs at busybox.net
Thu Feb 14 12:37:29 UTC 2008
The following issue has been CLOSED
======================================================================
http://busybox.net/bugs/view.php?id=379
======================================================================
Reported By: swth
Assigned To: BusyBox
======================================================================
Project: BusyBox
Issue ID: 379
Category: Other
Reproducibility: always
Severity: minor
Priority: normal
Status: closed
Resolution: open
Fixed in Version:
======================================================================
Date Submitted: 08-11-2005 21:34 PDT
Last Modified: 02-14-2008 04:37 PST
======================================================================
Summary: Control-C (SIGINT) is ignored or creates zombie
processes
Description:
1) Control-C (SIGINT) is ignored
During system initialization (inittab - script invoked by
::sysinit:/etc/init.d/rcS) I acquire information from a file in the file
system. If the expected file is not there, the script waits for it.
During development the file is never there. Thus, I use Control-C to kill
that script. Unfortunately, Control-C does not terminate the script.
Why?
2) Control-C (SIGINT) creates zombie process
After removing the above mentioned startup script, initialization of
system completes and a login prompt is presented to the user. System
seems fine. However, any running program terminated by a Control-C hang
indefinitely. Switching to another terminal (<ctrl>-<alt>-<f2>) and then
executing the "ps" command yields a zombie process named the same a the
killed process. Why?
======================================================================
----------------------------------------------------------------------
vda - 09-29-06 16:58
----------------------------------------------------------------------
Point (1) - correct behavior. User shouldn't be able to interrupt boot
process just because he happens to have access to console's keyboard.
Point (2) is not ok. Which init process do you use? Add print in the
relevant place(s) for debugging that...
/* Now run the looping stuff for the rest of forever */
while (1) {
...
wpid = wait(NULL);
...
}
----------------------------------------------------------------------
vda - 02-14-08 04:37
----------------------------------------------------------------------
I beileve "no reaping of children while sysinit actions are run" is fixed
in current svn:
static void waitfor(pid_t pid)
{
/* waitfor(run(x)): protect against failed fork inside run() */
if (pid <= 0)
return;
/* Wait for any child (prevent zombies from exiting orphaned
processes)
* but exit the loop only when specified one has exited. */
while (wait(NULL) != pid)
continue;
}
Issue History
Date Modified Username Field Change
======================================================================
08-11-05 21:34 swth New Issue
08-11-05 21:34 swth Status new => assigned
08-11-05 21:34 swth Assigned To => BusyBox
08-11-05 21:34 swth File Added: configs.tar.gz
09-29-06 16:58 vda Note Added: 0001659
02-14-08 04:37 vda Status assigned => closed
02-14-08 04:37 vda Note Added: 0004644
======================================================================
More information about the busybox-cvs
mailing list