wiki.zope.jp
Zope-2.4.3-zope
   
RecentChanges WikiHelp WikiPractice JumpSearch

Zope-2.4.3-zope(RedHat Linux用)

#!/bin/sh # # zope Start/Stop the Zope web-application server. # # 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

# Extracted from functions to augment it to obtain Zope's # watchdog and server PIDs from the ${INSTANCE_HOME}/var/Z2.pid # file, where both the parent and child processes are recorded # in the same file.

# A function to find the pid of a program. pidofproc() { # Test syntax. if [ $# = 0 ] ; then echo "Usage: pidofproc {program}" return 1 fi

# First try the "$INSTANCE_HOME/var/Z2.pid" file if [ -f ${INSTANCE_HOME}/var/Z2.pid ] ; then if [ "$1" = "zwatchdog" ] ; then pid=`sed -e 's/^\([0-9]\+\) [0-9]\+/\1/' ${INSTANCE_HOME}/var/Z2.pid` else if [ "$1" = "zserver" ] ; then pid=`sed -e 's/^[0-9]\+ \([0-9]\+\)/\1/' ${INSTANCE_HOME}/var/Z2.pid` fi fi

if [ "$pid" != "" ] ; then echo $pid return 0 fi fi

# Next try "/var/run/*.pid" files if [ -f /var/run/$1.pid ] ; then pid=`head -1 /var/run/$1.pid` if [ "$pid" != "" ] ; then echo $pid return 0 fi fi

# Next try "pidof" pid=`pidof -o $$ -o $PPID -o %PPID -x $1` if [ "$pid" != "" ] ; then echo $pid return 0 fi }

# Extracted from functions to fix a tiny bug where it uses pidof # but should be using pidofproc. status() { # Test syntax. if [ $# = 0 ] ; then echo "Usage: status {program}" return 1 fi

# First try "pidofproc" pid=`pidofproc $1` if [ "$pid" != "" ] && ps h $pid >/dev/null 2>&1 ; then echo "$1 (pid $pid) is running..." return 0 else pid=`pidof -o $$ -o $PPID -o %PPID -x $1` if [ "$pid" != "" ] ; then echo "$1 (pid $pid) is running..." return 0 fi fi

# Next try "/var/run/*.pid" files if [ -f /var/run/$1.pid ] ; then pid=`head -1 /var/run/$1.pid` if [ "$pid" != "" ] ; then echo "$1 dead but pid file exists" return 1 fi fi

# See if /var/lock/subsys/$1 exists if [ -f /var/lock/subsys/$1 ]; then echo "$1 dead but subsys locked" return 2 fi echo "$1 is stopped" return 3 }

INSTANCE_HOME=/var/zope INSTANCE_NAME=`basename ${INSTANCE_HOME}`

# make sure starter script exists [ -f ${INSTANCE_HOME}/zserver.sh ] || exit 0

RETVAL=0

# See how we were called. case "$1" in start) echo -n "Starting zope: " cd ${INSTANCE_HOME}

# See if it's already running. pid=`pidofproc zwatchdog` [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && echo && exit $RETVAL

pid=`pidofproc zserver` [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && echo && exit $RETVAL

rm -f ${INSTANCE_HOME}/var/Z2.pid daemon ${INSTANCE_HOME}/zserver.sh RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${INSTANCE_NAME} ;; stop) echo -n "Shutting down zope: " killproc zwatchdog killproc zserver echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${INSTANCE_NAME} ${INSTANCE_HOME}/var/Z2.pid ;; restart|reload) $0 stop $0 start RETVAL=$? ;; status) status zwatchdog [ $RETVAL -ne 0 ] && RETVAL=$? status zserver [ $RETVAL -ne 0 ] && RETVAL=$? ;; probe) # echo command to start/restart zope, only if NOT already running... # (this is a linuxconf convention, using the probe keyword above) if [ ! -f /var/lock/subsys/${INSTANCE_NAME} ] ; then echo start; exit 0 fi

pid=`pidofproc zwatchdog` [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && exit $RETVAL

pid=`pidofproc zserver` [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && exit $RETVAL

echo restart; exit 0 ;; *) echo "Usage: zope {start|stop|restart|status}" exit 1 esac

exit $RETVAL

Last edited Thu, 14 Sep 2006 00:05:22 +0900 Edit this page