在 2007-06-22五的 10:37 -0700,David Daney写道:
> Bin Chen wrote:
> > A little update for this problem, I wrote a propram to test the CTRL-C
> > signal, I found if I call:
> > 
> > signal(SIGINT, handler);
> > 
> > in main(), then the program can get the SIGINT when I press CTRL-C, but
> > if I comment out this line, the SIGINT can't cause the program exit.
> > 
> > I think this is caused by the default SIGINT processing logic inherited
> > from the busybox shell, right? In older busybox version we didn't
> > encounter this before, so maybe the reason is the default processing
> > logic for SIGINT in older busybox shell is exit.
> > 
> > Will a program started from shell inherit the signal processing
> > properties from the shell?
> > 
> 
> That explains it.  I have a busybox 1.00 system that has been annoying 
> me with this behavior.
> 
> The setting of SIG_DFL/SIG_IGN and the signal mask are inherited by 
> child processes.  If telnetd masked SIGINT or set it to SIG_IGN that 
> might keep the child processes from receiving the SIGINT.
> 
I solved this problem by modify the ash.c to force the SIGINT to set to
SIG_DFL.

_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to