On Fri, 16 Apr 2004, A. Wik wrote:
> I made a small test program to see if I could confirm the
> hypothesis that signal handlers get lost on fork(), but
> I could not. It also doesn't seem to be necessary to restore
> the handler after it's been used.
>
> Perhaps this code in daemon.c has something to do with it?
>
> /* Reset signals in the child */
>
> signal(SIGALRM, SIG_DFL);
> signal(SIGHUP, SIG_DFL);
> signal(SIGCHLD, SIG_DFL);
I'll check that out, but we were talking about a delivery problem here,
and a delivery process has done a re-exec on the Exim binary, so the
signal handlers should have all been reset.
Hmm. There are some non-standard configurations where the re-exec does
not happen. Mike, can you confirm that you are running a "standard" type
of configuration? (exim setuid to root, for example).
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.