You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Jay Jacobs <ja...@lach.net> on 2000/06/02 00:12:25 UTC
Apache children hanging (not exiting)
With that previous thread of Apache children hanging up the server it made
me think of an issue I see quite frequently in development... When I stop
the mod_perl server, it won't exit properly (or fast) :
[warn] child process 8530 still did not exit, sending a SIGTERM
(multiplied by number of processes)
I've seen this on servers running really sloppy code as well as really
tight code (but a lot of it). Eventually the children do die off, but it
takes about 15 seconds...
Could this be related to the aforemented thread?
Jay Jacobs
Re: Apache children hanging (not exiting)
Posted by Doug MacEachern <do...@covalent.net>.
On Thu, 1 Jun 2000, Jay Jacobs wrote:
> With that previous thread of Apache children hanging up the server it made
> me think of an issue I see quite frequently in development... When I stop
> the mod_perl server, it won't exit properly (or fast) :
>
> [warn] child process 8530 still did not exit, sending a SIGTERM
> (multiplied by number of processes)
>
> I've seen this on servers running really sloppy code as well as really
> tight code (but a lot of it). Eventually the children do die off, but it
> takes about 15 seconds...
from mod_perl.pod:
=item PERL_DESTRUCT_LEVEL
With Apache versions 1.3.0 and higher, mod_perl will call the
perl_destruct() Perl API function during the child exit phase.
This will cause proper execution of B<END> blocks found during server
startup along with invoking the B<DESTROY> method on global objects
who are still alive. It is possible that this operation may take a
long time to finish, causing problems during a restart. If your code
does not contain and B<END> blocks or B<DESTROY> methods which need to
be run during child server shutdown, this destruction can be avoided by
setting the I<PERL_DESTRUCT_LEVEL> environment variable to C<-1>.