[Zope-Checkins] CVS: Zope/lib/python/Zope/Startup - zopeschema.xml:1.2.2.12

Fred L. Drake, Jr. fred@zope.com
Mon, 17 Mar 2003 15:08:21 -0500


Update of /cvs-repository/Zope/lib/python/Zope/Startup
In directory cvs.zope.org:/tmp/cvs-serv22115

Modified Files:
      Tag: new-install-branch
	zopeschema.xml 
Log Message:
Add a simplified version of the "runner" section used with zdaemon's
zdctl.py/zdrun.py scripts; this will be used by a specialized zopectl
implementation.  Several options from the "runner" section are not
needed for zopectl.


=== Zope/lib/python/Zope/Startup/zopeschema.xml 1.2.2.11 => 1.2.2.12 ===
--- Zope/lib/python/Zope/Startup/zopeschema.xml:1.2.2.11	Thu Mar  6 13:59:05 2003
+++ Zope/lib/python/Zope/Startup/zopeschema.xml	Mon Mar 17 15:08:20 2003
@@ -25,6 +25,102 @@
     <key name="+" attribute="environ"/>
   </sectiontype>
 
+  <sectiontype name="zoperunner">
+    <description>
+      This section describes the options for zopectl.  These options
+      have no default value specified in the schema; in some cases,
+      zopectl calculates a dynamic default, in others, the feature
+      associated with the option is disabled.
+
+      For those options that also have corresponding command-line
+      options, the command line option (short and long form) are given
+      here too.
+    </description>
+
+    <key name="daemon" datatype="boolean"
+	 required="no" default="false">
+      <description>
+        Command-line option: -d or --daemon.
+
+        If this option is true, zdrun.py runs in the background as a
+        true daemon.  It forks an child process which becomes the
+        subprocess manager, while the parent exits (making the shell
+        that started it believe it is done).  The child process also
+        does the following:
+
+        - if the directory option is set, change into that directory
+
+        - redirect stdin, stdout and stderr to /dev/null
+
+        - call setsid() so it becomes a session leader
+
+        - call umask(022)
+      </description>
+    </key>
+
+    <key name="backoff-limit" datatype="integer"
+	 required="no" default="10">
+      <description>
+        Command-line option: -b or --backoff-limit.
+
+        When the subprocess crashes, zdrun.py inserts a one-second
+        delay before it restarts it.  When the subprocess crashes
+        again right away, the delay is incremented by one second, and
+        so on.  What happens when the delay has reached the value of
+        backoff-limit (in seconds), depends on the value of the
+        forever option.  If forever is false, zdrun.py gives up at
+        this point, and exits.  An always-crashing subprocess will
+        have been restarted exactly backoff-limit times in this case.
+        If forever is true, zdrun.py continues to attempt to restart
+        the process, keeping the delay at backoff-limit seconds.
+
+        If the subprocess stays up for more than backoff-limit
+        seconds, the delay is reset to 1 second.
+      </description>
+    </key>
+
+    <key name="forever" datatype="boolean"
+	 required="no" default="false">
+      <description>
+        Command-line option: -f or --forever.
+
+        If this option is true, zdrun.py will keep restarting a
+        crashing subprocess forever.  If it is false, it will give up
+        after backoff-limit crashes in a row.  See the description of
+        backoff-limit for details.
+      </description>
+    </key>
+
+    <key name="hang-around" datatype="boolean"
+	 required="no" default="false">
+      <description>
+        If this option is true, the zdrun.py process will remain even
+        when the daemon subprocess is stopped.  In this case, zopectl
+        will restart zdrun.py as necessary.  If this option is false,
+        zdrun.py will exit when the daemon subprocess is stopped
+        (unless zdrun.py intends to restart it).
+      </description>
+    </key>
+
+    <key name="default-to-interactive" datatype="boolean"
+	 required="no" default="true">
+      <description>
+        If this option is true, zopectl enters interactive mode
+        when it is invoked without a positional command argument.  If
+        it is false, you must use the -i or --interactive command line
+        option to zopectl to enter interactive mode.
+      </description>
+    </key>
+
+    <key name="prompt" datatype="string"
+         required="no" default="zopectl>">
+       <description>
+         The prompt shown by zopectl program.
+       </description>
+    </key>
+
+  </sectiontype>
+
   <!-- end of type definitions -->
 
   <!-- schema begins  -->
@@ -158,5 +254,7 @@
   </key>
 
   <multisection type="database" name="*" attribute="databases"/>
+
+  <section type="zoperunner" name="*" attribute="runner"/>
 
 </schema>