#!/bin/bash # # agbs Startup script for the Access Grid Bridge Server # # chkconfig: - 86 14 # description: Bridge service for Access Grid 3.xx # # config: /etc/default/agbs.conf CONFIGFILE=/etc/default/agbs.conf if [ -f ${CONFIGFILE} ]; then . ${CONFIGFILE} fi [ -z ${AGBRIDGE_OWNER} ] && { echo "AGBRIDGE_OWNER is not set. Set it in ${CONFIGFILE}" exit 1 } [ -z ${AGBRIDGE_HOME} ] && { echo "AGBRIDGE_HOME is not set. Set it in ${CONFIGFILE}" exit 2 } [ -z ${AGBRIDGE_EXE} ] && { echo "AGBRIDGE_EXE is not set. Set it in ${CONFIGFILE}" exit 1 } [ -z ${AGBRIDGE_NAME} ] && { echo "AGBRIDGE_NAME is not set. Set it in ${CONFIGFILE}" exit 1 } [ -z "${AGBRIDGE_LOCATION}" ] && { echo "AGBRIDGE_LOCATION is not set. Set it in ${CONFIGFILE}" exit 1 } [ -z ${PEERLISTURL} ] && { echo "PEERLISTURL is not set. Set it in ${CONFIGFILE}" exit 1 } prog=Bridge bs_stdout_log=${AGBRIDGE_HOME}/BridgeStdOut.log bs_stderr_log=${AGBRIDGE_HOME}/BridgeStdErr.log lockfile=${AGBRIDGE_LOCKFILE:-/var/lock/agbs} RETVAL=0 [ -x ${AGBRIDGE_EXE} ] || { echo "${AGBRIDGE_EXE} needs to exist and be executable" exit 3 } start() { echo -n $"Starting $prog: " (cd ${AGBRIDGE_HOME} && su ${AGBRIDGE_OWNER} \ -c "${AGBRIDGE_EXE} \ -u ${PEERLISTURL} \ -n ${AGBRIDGE_NAME} \ -l ${AGBRIDGE_LOCATION} \ 1>>${bs_stdout_log} 2>>${bs_stderr_log}" &) RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } stop() { echo -n $"Stopping $prog ... " pkill -HUP ${prog} RETVAL=$? [ $RETVAL -ne 0 ] && { sleep 3 echo -n $"... " pkill -TERM ${prog} } [ $RETVAL -ne 0 ] && { sleep 3 echo -n $"... " pkill -KILL ${prog} } RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: $prog {start|stop|restart}" exit 1 esac exit $RETVAL