Hello,
It appears that my woes were caused by an Apache bug.  Following is my 
original question and the helpful response (solution) which I received 
from Richard Jackson (whom I extend my gratitude):
Regards,
Bill Antoniadis
>Bill Antoniadis writes:
>  
>
>>> 
>>> Hello,
>>> 
>>> Has anyone else experienced problems with OpenSSL 0.9.7c, Apache 1.3.28 
>>> and modSSL 2.8.15?  I have installed the aforementioned on three Tru64 
>>> 5.1A (patch kit 5) boxes and I see Apache create a lot of defunct 
>>> processes.  Eventually, Apache can no longer spawn any processes as the 
>>> zombies exceed "max_proc_per_user".  I am trying to track down if this 
>>> is an O/S related issue or OpenSSL-Apache-modSSL issue.
>>> 
>>> Regards,
>>> Bill Antoniadis
>>> 
>>> 
>>> 
>>    
>>
>
>Yes, there is a bug in the apache code.  This is a known issue but when
>I was investigating this issue in September 2003 the Apache developers
>were still trying to develop a fix.  These are my notes...
>
>fix Apache 1.3.28 + modSSL due to CGI defunct processes
>The change tracker application is leaving behind defunct
>processes and it is assumed due to a bug introduced in Apache 1.3.28
>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21737.  Note this
>patch, id=21737, did not stop the defunct processes.  Instead, I
>used the solutions suggested by Ralf Engelschall,
>http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105952652425849&w=2
>. cd /usr/local/src/apache_1.3.28
>. cp -p src/main/alloc.c src/main/alloc.c.20030904
>. modify src/main/alloc.c
>. make >& make.log2 &
>. strip src/httpd
>. cp -p src/httpd /usr/local/apache/bin/httpd.new
>. cd /usr/local/apache/bin
>. (mv httpd httpd.20030904;mv httpd.new httpd)
>. /sbin/init.d/https-apache stop
>. /sbin/init.d/https-apache start
>. cd /usr/local/src/apache_1.3.28/src/main
>. diff -c alloc.c.20030904 alloc.c
>---------------------------------------------
>*** alloc.c.20030904    Thu Sep  4 12:10:42 2003
>--- alloc.c     Thu Sep  4 14:22:35 2003
>***************
>*** 3096,3107 ****
>        if ((p->kill_how == kill_after_timeout)
>            || (p->kill_how == kill_only_once)) {
>            /* Subprocess may be dead already.  Only need the timeout if not. */
>!           if (ap_os_kill(p->pid, SIGTERM) == -1) {
>!                 p->kill_how = kill_never;
>!             }
>!             else {
>!               need_timeout = 1;
>!             }
>        }
>        else if (p->kill_how == kill_always) {
>            kill(p->pid, SIGKILL);
>--- 3096,3103 ----
>        if ((p->kill_how == kill_after_timeout)
>            || (p->kill_how == kill_only_once)) {
>            /* Subprocess may be dead already.  Only need the timeout if not. */
>!             ap_os_kill(p->pid, SIGTERM);
>!             need_timeout = 1;
>        }
>        else if (p->kill_how == kill_always) {
>            kill(p->pid, SIGKILL);
>---------------------------------------------
>
>
> -- Regards, /~\ The ASCII Richard Jackson \ / Ribbon Campaign Computer 
> Systems Engineer, X Against HTML Information Technology Unit, 
> Technology Systems Division / \ Email! Enterprise Servers and 
> Operations Department George Mason University, Fairfax, Virginia
>
Received on Wed Oct 08 2003 - 18:55:11 NZDT