X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rpm%2Fmetaproxy.init;h=cf32a359670ddf049dfcd25a9a75c8b933ae533a;hb=8030de74a37426f2f0c880b8d7d076c7b974d2cf;hp=76efd8a242203ded390c06b23a332355b86b2af1;hpb=0a6a1372034e33c098e390473278330a61a28d38;p=metaproxy-moved-to-github.git diff --git a/rpm/metaproxy.init b/rpm/metaproxy.init index 76efd8a..cf32a35 100755 --- a/rpm/metaproxy.init +++ b/rpm/metaproxy.init @@ -9,10 +9,96 @@ # config: /etc/sysconfig/metaproxy # pidfile: /var/run/metaproxy.pid -# Source function library. -. /etc/rc.d/init.d/functions +### BEGIN INIT INFO +# Provides: metaproxy +# Required-Start: $local_fs $remote_fs $network +# Required-Stop: $local_fs $remote_fs +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Controls the metaproxy daemon +# Description: Controls the Metaproxy Z39.50/SRU router. +### END INIT INFO -OPTIONS="-u nobody -l /var/log/metaproxy.log -c /etc/metaproxy/metaproxy.xml" + +# start of compatibility layer for RedHat/SuSE init.d +# +# rc_status exist on SuSE. Provide dummy if unavailable +if test -f /etc/rc.status; then + . /etc/rc.status +else + rc_status() { + r=$? + echo "" + return $r + } +fi + +# functions exist on RedHat. Provide tiny subset if unavailable +if test -f /etc/rc.d/init.d/functions; then + . /etc/rc.d/init.d/functions +else + daemon() { + pid_file="" + while test $# -gt 0; do + case $1 in + --pidfile) + pid_file=$2 + shift 2 + ;; + *) + break; + ;; + esac + done + startproc -p $pid_file $* + } + + killproc() { + pid_file="" + delay=10 + while test $# -gt 0; do + case $1 in + -p) + pid_file=$2 + shift 2 + ;; + -d) + delay=$2 + shift 2 + ;; + *) + break; + ;; + esac + done + /sbin/killproc -p $pid_file $* + } + status() { + pid_file="" + while test $# -gt 0; do + case $1 in + -p) + pid_file=$2 + shift 2 + ;; + *) + break; + ;; + esac + done + if test -f $pid_file && kill -0 `cat $pid_file`; then + echo "$DAEMON `cat $pid_file` is running" + return 0 + fi + echo "$DAEMON is not running" + return 1 + } +fi +# end of compatibility layer for RedHat/SuSE + +. /etc/metaproxy/metaproxy.user + +OPTIONS="-u $SERVER_USER -l /var/log/metaproxy.log -c /etc/metaproxy/metaproxy.xml" if [ -f /etc/sysconfig/metaproxy ]; then . /etc/sysconfig/metaproxy @@ -26,9 +112,9 @@ RETVAL=0 start() { echo -n $"Starting $prog: " - daemon --pidfile=${pidfile} $DAEMON $OPTIONS -D -p ${pidfile} + daemon --pidfile ${pidfile} $DAEMON $OPTIONS -D -p ${pidfile} + rc_status -v RETVAL=$? - echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } @@ -36,47 +122,89 @@ start() { stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} -d 10 $DAEMON + rc_status -v RETVAL=$? - echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} } + reload() { - stop - start + echo -n $"Reloading $prog: " + $DAEMON $OPTIONS -t >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL = 0 ]; then + killproc -p ${pidfile} $DAEMON -USR1 >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL = 0 ]; then + i=0 + p=`cat ${pidfile}` + while [ -d /proc/$p -a $i -lt 100 ]; do + i=`expr $i + 1` + usleep 50000 + done + if [ -d /proc/$p ]; then + echo_failure + rc_status -v + RETVAL=1 + else + rm -f ${pidfile} + fi + else + echo_failure + rc_status -v + fi + else + echo_failure + rc_status -v + echo $"not reloading due to configuration syntax error" + fi + if [ $RETVAL = 0 ]; then + daemon --pidfile ${pidfile} $DAEMON $OPTIONS -D -p ${pidfile} + rc_status -v + RETVAL=$? + [ $RETVAL = 0 ] && touch ${lockfile} + fi + return $RETVAL } # See how we were called. case "$1" in - start) - start - ;; - stop) - stop - ;; - status) - status -p ${pidfile} $DAEMON - RETVAL=$? - ;; - restart) - stop - start - ;; - condrestart) - if [ -f ${pidfile} ] ; then + start) + start + ;; + stop) + stop + ;; + status) + status -p ${pidfile} $DAEMON + RETVAL=$? + ;; + restart) stop start - fi - ;; - reload) - reload - ;; - configtest) - $DAEMON $OPTIONS -t - RETVAL=$? - ;; - *) - echo $"Usage: $prog {start|stop|restart|help|configtest}" - exit 1 + ;; + condrestart) + if [ -f ${pidfile} ] ; then + stop + start + fi + ;; + reload) + if [ -f ${pidfile} ] ; then + reload + fi + ;; + configtest) + $DAEMON $OPTIONS -t + RETVAL=$? + ;; + *) + echo $"Usage: $prog {start|stop|restart|help|configtest}" + exit 1 esac exit $RETVAL +# Local Variables: +# mode:shell-script +# sh-indentation: 8 +# sh-basic-offset: 8 +# End: