#!/bin/sh # zope # # chkconfig: 345 90 10 # description: Starts and stops the Zope instances # processname: z2.py # config: /etc/sysconfig/zope # # probe: true # # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # 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 # 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 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) stop_instances ;; status) stat_instances ;; restart|force-reload) $0 stop $0 start exit $? ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 ;; esac exit $RETVAL