fi
# Zope settings.
-. /etc/sysconfig/zope
+INSTANCES="main"
+[ -f /etc/sysconfig/zope ] && . /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 WEBDAV_PORT WATCHDOG
- unset IPC_PORT LOC DEBUG_MODE DETAILED_LOG_FILE
-
- # by default disable any access
- HTTP_PORT="-"
- ICP_PORT="-"
- FTP_PORT="-"
- WEBDAV_PORT="-"
-}
-
-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/*
+ RETVAL=1
+ for INSTANCE_NAME in $INSTANCES
do
- unset_vars
- INSTANCE_NAME=`basename $i`
- echo "$INSTANCE_NAME" | egrep -q "rpmsave|rpmorig" && continue
- . $i
- PIDFILE=$INSTANCE_HOME/var/Z2.pid
- if [ "x$INSTANCE_NAME" = "xmain" ]; then
- z_name="Zope"
- else
- z_name="Zope ($INSTANCE_NAME)"
+ INSTANCE_HOME="/var/lib/zope/$INSTANCE_NAME"
+
+ if [ -f /var/lock/subsys/"zope-$INSTANCE_NAME" ]; then
+ msg_already_running "Zope instance $INSTANCE_NAME"
+ continue
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
+
+ run_cmd "Starting Zope instance $INSTANCE_NAME" "$INSTANCE_HOME"/bin/zopectl start
+ RET=$?
+ if [ $RET -eq 0 ]; then
+ touch /var/lock/subsys/"zope-$INSTANCE_NAME"
+ RETVAL=0
fi
- start_instance
done
+ return $RETVAL
}
stop_instances()
{
- for i in /etc/zope/instances/*
+ RETVAL=1
+ for INSTANCE_NAME in $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)"
+ INSTANCE_HOME="/var/lib/zope/$INSTANCE_NAME"
+
+ if [ ! -f /var/lock/subsys/"zope-$INSTANCE_NAME" ]; then
+ msg_not_running "Zope instance $INSTANCE_NAME"
+ continue
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"
+
+ run_cmd "Stopping Zope instance $INSTANCE_NAME" "$INSTANCE_HOME"/bin/zopectl stop
+ RET=$?
+ if [ $RET -eq 0 ]; then
+ RETVAL=0
fi
+ rm -f /var/lock/subsys/"zope-$INSTANCE_NAME"
done
+ return $RETVAL
}
stat_instances()
{
- for i in /etc/zope/instances/*
+ for INSTANCE_NAME in $INSTANCES
do
- unset_vars
- . $i
+ INSTANCE_HOME=/var/lib/zope/$INSTANCE_NAME
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
+ $INSTANCE_HOME/bin/zopectl status
done
}
# See how we were called.
case "$1" in
start)
+ msg_starting "Zope"
+ started
start_instances
+ RETVAL=$?
+ if [ "$RETVAL" = 0 ] ; then
+ msg_starting "Zope"
+ ok
+ touch /var/lock/subsys/zope
+ else
+ msg_starting "Zope"
+ fail
+ fi
;;
stop)
+ if [ -f /var/lock/subsys/zope ]; then
+ msg_stopping "Zope"
+ started
stop_instances
+ RETVAL=$?
+ if [ "$RETVAL" = 0 ] ; then
+ msg_stopping "Zope"
+ ok
+ else
+ msg_stopping "Zope"
+ fail
+ fi
+ rm -f /var/lock/subsys/zope >/dev/null 2>&1
+ else
+ msg_not_running "Zope"
+ exit 1
+ fi
;;
status)
- stat_instances
+ stat_instances
;;
restart|force-reload)
$0 stop