X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rpm%2Fmetaproxy.init;h=cf32a359670ddf049dfcd25a9a75c8b933ae533a;hb=refs%2Ftags%2Fv1.9.1;hp=9f45880b3ef7773643126b1506e3faa9387ef484;hpb=1f3e6570bfc94f5e931644bb65c1b2d5c266019d;p=metaproxy-moved-to-github.git diff --git a/rpm/metaproxy.init b/rpm/metaproxy.init index 9f45880..cf32a35 100755 --- a/rpm/metaproxy.init +++ b/rpm/metaproxy.init @@ -9,81 +9,96 @@ # config: /etc/sysconfig/metaproxy # pidfile: /var/run/metaproxy.pid +### 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 + + # start of compatibility layer for RedHat/SuSE init.d # -# rc.status exist on SuSE. Provide dummy if unavailable +# rc_status exist on SuSE. Provide dummy if unavailable if test -f /etc/rc.status; then - . /etc/rc.status + . /etc/rc.status else -rc_status() { - echo "" -} + 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 $* -} + 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 -} + 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 -OPTIONS="-u nobody -l /var/log/metaproxy.log -c /etc/metaproxy/metaproxy.xml" +. /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 @@ -111,43 +126,85 @@ stop() { RETVAL=$? [ $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: