X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=Zope.init;h=9ad8a6d3642820b6b3f605a2dee3ef22b15d350c;hb=4170205477405b4e3f01d9383f49b16d90dbcfbe;hp=6792ae2b7fcdf7c99a9b6df3d691dbc64f07b51a;hpb=8bc946c67af93e0a588e4bcfed42923d6d610774;p=packages%2FZope.git diff --git a/Zope.init b/Zope.init index 6792ae2..9ad8a6d 100644 --- a/Zope.init +++ b/Zope.init @@ -1,65 +1,171 @@ #!/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