[FASTCGI] FastCGI Expert Sought
Kornél Pál
kornelpal at gmail.com
Fri Jul 17 04:45:24 EDT 2009
Ross Richey wrote:
> Several people have suggested that PERL is the problem. And indeed in a
> sense it is. It's really hard to keep PERL from leaking memory, so hard
> it's not worth even trying. This wouldn't be a problem if, after a
> certain number of requests, we could just nicely kill the old FastCGI
> process and respawn a new one. Instead we get processes which are
> defunct and Lighttpd will eventually run out of live FastCGI processes
> to use and then it will no longer be able to serve those requests.
If you mean processes marked as <defunct> by ps that are also known as
zombie processes then this has nothing to do with that process. Zomobie
processes are caused by the parent process. A zombie process is
basically only consuming a PID, there is no real process behind it.
There are three ways to get rid of zombie processes:
1) Kill the parent process.
2) Fork a new process at the very beginning of your program an exit the
original process that is now the parent that makes init the new parent
of your now orphaned process that takes care about calling wait().
3) Fix the parent by handling SIGCHLD and calling wait() in the handler.
This latter is the real solution but if you don't want to touch the
parent process you should do number 2.
Kornél
More information about the FastCGI-developers
mailing list