|Think about Loose Coupling|
defunct: the dead horse flogged.by Kozz (Friar)
|on Feb 19, 2002 at 15:14 UTC||Need Help??|
Kozz has asked for the
wisdom of the Perl Monks concerning the following question:
Greetings, most wise monks.
I've a question regarding defunct processes, specifically those of CGI scripts. I did a search AND a super-search and came across a few threads which seemed to relate to my problem, but none that truly answered my question.
I've got some perl scripts on a server, which, when it seems that the load grows high for some reason unrelated to my CGI scripts (most running as SSIs), all my SSI's start leaving dozens of <defunct> processes around.
I know from reading here that a defunct process is caused when a parent exits without waiting for its child. In this case, Apache is the parent, no? I guess I'm not sure what to do to prevent this. There's been some mild finger-pointing every time this poorly-administered server (IMO) yaks up a hairball and shows a high load that my CGI scripts are to blame because, after all, a quick 'ps aux' shows a ton of defunct scripts.
I've looked at putting the code in an eval block with alarm, but I've not worked with this much before. Will this method ensure that the script dies within $timeout? Or am I trying to patch the wrong problem here?
Thanks so much for your help.