I'm a long time user of mod_fcgi and would like to start using mod_fcgid. I've 
been running mod_fcgi with a custom patch of mine. I like to see if it could 
be included in mod_fcgid or maybe you can give me an other way to accomplish  
what I need without the patch. What I have is one C program that lives on a 
linux server. I want to use a web browser as the UI. The C program is a 
classic "one instance to one UI". If 5 people want to run this program I need 
five separate and persistent copies of the program running, one for each 
person. When one is done then the program exits. 
What I've done is sym-linked my program to make unique program names 
like:
program-1
program-2
program-3
etc..
Then each browser asks for a different name.
plus the patch that allows setting  killInterval to 0, so the process manager 
won't kill my process ever.  Here are the settings:
-maxClassProcesses 1 -singleThreshold 1 -killInterval 0.

I know I could have done it with FastCGIExternalServer, but I wanted 
everything to be dynamic.

Here is the patch.

Index: fcgi_pm.c
===================================================================
--- fcgi_pm.c   (revision 674)
+++ fcgi_pm.c   (working copy)
@@ -1925,11 +1925,14 @@
             if(fcgi_dynamic_epoch == 0) {
                 fcgi_dynamic_epoch = now;
             }
+            if (dynamicKillInterval != 0)
+            {
              if(((long)(now-fcgi_dynamic_epoch)>=dynamicKillInterval) ||
                      
((fcgi_dynamic_total_proc_count+dynamicProcessSlack)>=dynamicMaxProcs)) 
{
                  dynamic_kill_idle_fs_procs();
                  fcgi_dynamic_epoch = now;
              }
+            }
         }
 
         if(!callWaitPid) {
@@ -2060,11 +2063,14 @@
                 fcgi_dynamic_epoch = now;
             }
 
+            if (dynamicKillInterval != 0)
+            {
              if ((now-fcgi_dynamic_epoch >= (int) dynamicKillInterval) ||
                  ((fcgi_dynamic_total_proc_count+dynamicProcessSlack) >= 
dynamicMaxProcs)) {
                  dynamic_kill_idle_fs_procs();
                  fcgi_dynamic_epoch = now;
              }
+            }
             read_ready = 0;
         }
         else if (dwRet == WAKE_EVENT) {
Index: fcgi_config.c
===================================================================
--- fcgi_config.c       (revision 674)
+++ fcgi_config.c       (working copy)
@@ -1067,7 +1067,7 @@
                 return invalid_value(tp, name, NULL, option, err);
         }
         else if (strcasecmp(option, "-killInterval") == 0) {
-            if ((err = get_u_int(tp, &arg, &dynamicKillInterval, 1)))
+            if ((err = get_u_int(tp, &arg, &dynamicKillInterval, 0)))
                 return invalid_value(tp, name, NULL, option, err);
         }
         else if (strcasecmp(option, "-updateInterval") == 0) {


-- 
Computer Services
Ricardo Cantu
Vice President

Home office
3506 Buchanan St Suite C
Wichita Falls, TX 76308
(940) 696-3010

El Paso branch
14553 Desierto Lindo Ave
El Paso, TX 79928
(915) 219-7119

Reply via email to