diff options
Diffstat (limited to 'network/zabbix_agentd/rc.zabbix_agentd')
-rw-r--r-- | network/zabbix_agentd/rc.zabbix_agentd | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/network/zabbix_agentd/rc.zabbix_agentd b/network/zabbix_agentd/rc.zabbix_agentd new file mode 100644 index 0000000000..bbe5650698 --- /dev/null +++ b/network/zabbix_agentd/rc.zabbix_agentd @@ -0,0 +1,79 @@ +#!/bin/sh + +# usage: ./rc.zabbix_agentd { start | stop | restart } + +PRGNAM=zabbix_agentd +PRGDIR=/usr/sbin/ +PIDDIR=/var/run/zabbix/ +LOGDIR=/var/log/zabbix/ +DATE=$(date +%a\ %b\ %d\ %T\ %Y) +RETVAL=0 + +prg_start() { + echo -n "Starting $PRGNAM ... " + if [ -r ${PIDDIR}${PRGNAM}.pid ]; then + if $(! /sbin/pidof $PRGNAM > /dev/null 2>&1 ) ; then + echo "Removing an old ${PIDDIR}${PRGNAM}.pid" + rm -f ${PIDDIR}${PRGNAM}.pid + fi + fi + ${PRGDIR}${PRGNAM} >> ${LOGDIR}${PRGNAM}.log 2>&1 + RETVAL=$? + + if [ $RETVAL -eq 0 ]; then + touch /var/lock/$PRGNAM + sleep 2 + echo "Done" + else + echo "Failed" + fi + return $RETVAL +} + +prg_stop() { + echo -n "Stopping $PRGNAM ... " + if [ -r ${PIDDIR}${PRGNAM}.pid ]; then + killall $PRGNAM + # Give it some time to die gracefully + for second in 0 1 2 3 4 5 6 7 8 9 10 ; do + if $(! /sbin/pidof $PRGNAM > /dev/null 2>&1 ) ; then + rm -f ${PIDDIR}${PRGNAM}.pid + break; + fi + sleep 1 + done + + if [ "$second" = "10" ]; then + echo "\nWARNING: $PRGNAM did not exit!" + sleep 10 + else + echo "$DATE EXIT: $PRGNAM stopped by user: $USER (UID: $EUID)" >> ${LOGDIR}${PRGNAM}.log + echo "Done" + fi + fi + rm -f /var/lock/$PRGNAM + return $RETVAL +} + +# How were we called: +case "$1" in + start) + prg_start + ;; + stop) + prg_stop + ;; + restart|reload) + prg_stop + # Wait a few seconds before restarting + sleep 10 + prg_start + ;; + *) + echo "" + echo "Usage: $(basename $0) {start | stop | restart }" + RETVAL=1 +esac + +exit $RETVAL +#EOF |