#!/bin/sh # # zabbix_agentd_ctl # # control script to stop/start/restart zabbix_agentd # author: charlie collins # date: 01.21.2002 # # revised 09.21.2003 # (setup for Red Hat 7.3 with Zabbix 1.0 beta) # (should work for other Red Hat and Sys V style init machines as well) # # (modeled after apache style control scripts) # (this script can be placed in init.d and respective runlevel for startup usage) # # # The exit codes returned are: # 0 - operation completed successfully # 1 - # 2 - usage error # 3 - zabbix_agentd could not be started # 4 - zabbix_agentd could not be stopped # 5 - zabbix_agentd could not be started during a restart # 6 - zabbix_agentd could not be restarted during a restart # # # # ************** # config options # ************** # # (set config options to match your system settings) # base zabbix dir BASEDIR=/opt/zabbix # pid file (as of 1.0 beta 10) PIDFILE=/var/tmp/zabbix_agentd.pid # binary file ZABBIX_AGENTD=$BASEDIR/bin/zabbix_agentd # ************** # logic section (below here) does NOT normally need any modification # ************** # establish args ERROR=0 ARGV="$@" if [ "x$ARGV" = "x" ] ; then ARGS="help" fi # perform action based on args for ARG in $@ $ARGS do # check if PIDFILE exists and ensure is not zero size and react accordingly if [ -f $PIDFILE ] && [ -s $PIDFILE ] ; then PID=`cat $PIDFILE` if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then STATUS="zabbix_agentd (pid $PID) running" RUNNING=1 else STATUS="zabbix_agentd (pid $PID?) not running" RUNNING=0 fi else STATUS="zabbix_agentd (no pid file) not running" RUNNING=0 fi # parse arg and react accordingly case $ARG in start) if [ $RUNNING -eq 1 ]; then echo "$0 $ARG: zabbix_agentd (pid $PID) already running" continue fi if $ZABBIX_AGENTD ; then echo "$0 $ARG: zabbix_agentd started" else echo "$0 $ARG: zabbix_agentd could not be started" ERROR=3 fi ;; stop) if [ $RUNNING -eq 0 ]; then echo "stop called - in running eq 0" echo "$0 $ARG: $STATUS" continue fi if kill $PID ; then echo "$0 $ARG: zabbix_agentd process(es) stopped" else echo "$0 $ARG: zabbix_agentd process(es) could not be stopped" ERROR=4 fi ;; restart) if [ $RUNNING -eq 0 ]; then echo "$0 $ARG: zabbix_agentd not running, trying to start" if $ZABBIX_AGENTD ; then echo "$0 $ARG: zabbix_agentd started" else echo "$0 $ARG: zabbix_agentd could not be started" ERROR=5 fi else if kill $PID ; then if $ZABBIX_AGENTD ; then echo "$0 $ARG: zabbix_agentd restarted" else echo "$0 $ARG: zabbix_agentd could not be started" ERROR=3 fi else echo "$0 $ARG: zabbix_agentd could not be restarted" ERROR=6 fi fi ;; *) echo "usage: $0 (start|stop|restart|help)" cat <