]> git.pld-linux.org Git - packages/Zope.git/blobdiff - Zope.init
- typo
[packages/Zope.git] / Zope.init
index 6792ae2b7fcdf7c99a9b6df3d691dbc64f07b51a..9ad8a6d3642820b6b3f605a2dee3ef22b15d350c 100644 (file)
--- a/Zope.init
+++ b/Zope.init
 #!/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
 
-ZOPE_HOME=/usr/lib/zope
-INSTANCE_HOME=/var/lib/zope
-INSTANCE_NAME=`basename ${INSTANCE_HOME}`
+# Source networking configuration.
+. /etc/sysconfig/network
 
-RETVAL=0
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+       if [ ! -f /var/lock/subsys/network ]; then
+               msg_network_down Zope
+               exit 1
+       fi
+else
+       exit 0
+fi
 
-# See how we were called.
-case "$1" in
-    start)
-       if [ -f /var/lock/subsys/zope ]; then
-               msg_Already_Running Zope
-       else    
-               msg_starting Zope
-               busy
-               daemon zope-zserver
-               RETVAL=$?;
+# Zope settings.
+. /etc/sysconfig/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
+       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
-               [ $RETVAL -eq 0 ] && touch /var/lock/subsys/zope
+               kill -9 `cat $PIDFILE` 2>/dev/null
+               RET=$?
+               [ $RET -eq 0 ] && ok || died
+           fi
+           rm -f $PIDFILE
+       else
+           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
+       if [ -f $PIDFILE ]; then
+           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
+           nls "%s is stopped" "$z_name"
+           RETVAL=2
+       fi
+    done
+}
+
+# See how we were called.
+case "$1" in
+  start)
+               start_instances
        ;;
   stop)
-        if [ -f /var/lock/subsys/zope ]; then
-                msg_stopping Zope
-                kill `cat ${INSTANCE_HOME}/Z2.pid`
-               sleep 1
-               deltext
-               ok
-                rm -f /var/lock/subsys/zope >/dev/null 2>&1
-        else
-                msg_not_running Zope
-                exit 1
-        fi
+               stop_instances
        ;;
   status)
-       if ps -p `cat ${INSTANCE_HOME}/Z2.pid | awk '{print $2}'` >/dev/null; then
-           RETVAL=$?
-           echo "Zope (pid `cat ${INSTANCE_HOME}/Z2.pid`) is running"
-       else     
-           msg_not_running Zope
-           RETVAL=1
-       fi
-    
+               stat_instances
        ;;
-  restart)
+  restart|force-reload)
        $0 stop
        $0 start
+       exit $?
        ;;
   *)
-       msg_Usage "$0 {start|stop|status|restart}"
-       exit 1
+       msg_usage "$0 {start|stop|restart|force-reload|status}"
+       exit 3
        ;;
 esac
 
This page took 0.039506 seconds and 4 git commands to generate.