]> git.pld-linux.org Git - packages/Zope.git/blobdiff - Zope.init
- typo
[packages/Zope.git] / Zope.init
index 8da83c0b94721b770159ae788825361e462e53e6..9ad8a6d3642820b6b3f605a2dee3ef22b15d350c 100644 (file)
--- a/Zope.init
+++ b/Zope.init
@@ -1,11 +1,14 @@
 #!/bin/sh
+# zope
 #
-# zope         Start/Stop the Zope web-application server.
+# chkconfig: 345 90 10
+# description: Starts and stops the Zope instances
+# processname: z2.py
+# config: /etc/sysconfig/zope
 #
-# chkconfig: 2345 72 72
-# description: zope is a web server specifically for handling \
-#              HTTP requests to the Zope web-application service.
 # probe: true
+#
+
 
 # Source function library.
 . /etc/rc.d/init.d/functions
@@ -23,54 +26,137 @@ else
        exit 0
 fi
 
-CLIENT_HOME=/var/lib/zope
-PIDFILE=${CLIENT_HOME}/Z2.pid
+# Zope settings.
+. /etc/sysconfig/zope
 
-RETVAL=0
-# See how we were called.
-case "$1" in
-  start)
-       if [ ! -f /var/lock/subsys/zope ]; then
-               msg_starting Zope
-               daemon zope-zserver
-               RETVAL=$?;
-               sleep 5
-               [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zope
-       else    
-               msg_already_running Zope
+
+# functions
+
+unset_vars()
+{
+    unset INSTANCE_NAME INSTANCE_HOME INST_HOME CGIBIN_BASE LOG_FILE
+    unset ZOPE_BASE ZOPE_USER NUMBER_OF_THREADS ZOPE_HOME
+    unset IP_ADDRESS HTTP_PORT FTP_PORT WATCHDOG
+    unset IPC_PORT LOC DEBUG_MODE DETAILED_LOG_FILE
+}
+
+start_instance()
+{
+    msg_starting "$z_name"
+
+    INST_HOME="$INSTANCE_HOME"
+    ZOPE_HOME="$INSTANCE_HOME"
+
+    export INSTANCE_NAME INSTANCE_HOME INST_HOME CGIBIN_BASE LOG_FILE
+    export ZOPE_BASE ZOPE_USER NUMBER_OF_THREADS ZOPE_HOME
+    export IP_ADDRESS HTTP_PORT FTP_PORT WATCHDOG
+    export IPC_PORT LOC DEBUG_MODE DETAILED_LOG_FILE
+
+    daemon zope-start
+    RETVAL=$?
+    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zope
+    sleep 5
+}
+
+start_instances()
+{
+    for i in /etc/zope/instances/*
+    do
+       unset_vars
+       . $i
+       PIDFILE=$INSTANCE_HOME/var/Z2.pid
+       INSTANCE_NAME=`basename $i`
+       if [ "x$INSTANCE_NAME" = "xmain" ]; then
+           z_name="Zope"
+       else
+           z_name="Zope ($INSTANCE_NAME)"
        fi
-       ;;
-  stop)
-       if [ -f /var/lock/subsys/zope ]; then
-               msg_stopping Zope
-               busy
-               kill `cat ${CLIENT_HOME}/Z2.pid`
+       if [ -f $PIDFILE ]; then
+           if ps -p `cat $PIDFILE` >/dev/null; then
+                   RETVAL=$?
+                   msg_already_running "$z_name"
+                   continue
+           else
+               rm -f $PIDFILE
+           fi
+       fi
+       start_instance
+    done
+}
+
+stop_instances()
+{
+    for i in /etc/zope/instances/*
+    do
+       unset_vars
+       . $i
+       PIDFILE=$INSTANCE_HOME/var/Z2.pid
+       INSTANCE_NAME=`basename $i`
+       if [ "x$INSTANCE_NAME" = "xmain" ]; then
+           z_name="Zope"
+       else
+           z_name="Zope ($INSTANCE_NAME)"
+       fi
+       
+       if [ -f $PIDFILE ]; then
+           msg_stopping "$z_name"
+           busy
+           kill `cat $PIDFILE` 2>/dev/null
+           RET=$?
+           sleep 1
+           if [ $RET -eq 0 ]; then
+               ok
+           else
+               sleep 5
+               kill -9 `cat $PIDFILE` 2>/dev/null
                RET=$?
-               sleep 1
                [ $RET -eq 0 ] && ok || died
-               rm -f /var/lock/subsys/zope ${CLIENT_HOME}/Z2.pid >/dev/null 2>&1
+           fi
+           rm -f $PIDFILE
        else
-               msg_not_running Zope
+           msg_not_running "$z_name"
+       fi
+    done
+}
+
+stat_instances()
+{
+    for i in /etc/zope/instances/*
+    do
+       unset_vars
+       . $i
+       PIDFILE=$INSTANCE_HOME/var/Z2.pid
+       INSTANCE_NAME=`basename $i`
+       if [ "x$INSTANCE_NAME" = "xmain" ]; then
+           z_name="Zope"
+       else
+           z_name="Zope ($INSTANCE_NAME)"
        fi
-       ;;
-  status)
        if [ -f $PIDFILE ]; then
-               if ps -p `cat $PIDFILE` >/dev/null; then
-                       RETVAL=$?
-                       nls "%s (pid %s) is running..." Zope "`cat $PIDFILE`"
-               else
-                       nls "%s dead but pid file exists" Zope
-                       RETVAL=1
-               fi
+           if ps -p `cat $PIDFILE` >/dev/null; then
+               RETVAL=$?
+               nls "%s (pid %s) is running..." "$z_name" "`cat $PIDFILE`"
+           else
+               nls "%s dead but pid file exists" "$z_name"
+               RETVAL=1
+           fi
        else
-               if [ -f /var/lock/subsys/zope ]; then
-                       nls "%s dead but subsys locked" Zope
-                       RETVAL=2
-               else
-                       nls "%s is stopped" Zope
-                       RETVAL=3
-               fi
+           nls "%s is stopped" "$z_name"
+           RETVAL=2
        fi
+    done
+}
+
+# See how we were called.
+case "$1" in
+  start)
+               start_instances
+       ;;
+  stop)
+               stop_instances
+       ;;
+  status)
+               stat_instances
        ;;
   restart|force-reload)
        $0 stop
This page took 0.032364 seconds and 4 git commands to generate.