- #!/bin/sh
- umask 022
- CAT=/bin/cat
- KILL=/bin/kill
- SU_USER=zabbix
- # zabbix script
- ZABBIX_SERVER=/usr/local/sbin/zabbix_server
- ZABBIX_AGENTD=/usr/local/sbin/zabbix_agentd
- # pid file
- ZS_PID=/tmp/zabbix_server.pid
- ZA_PID=/tmp/zabbix_agentd.pid
- start_agentd() {
- if [ -e $ZA_PID ]; then
- echo "$ZABBIX_AGENTD is running!"
- exit
- else
- echo -n "starting $ZABBIX_AGENTD..."
- su ${SU_USER} -c ${ZABBIX_AGENTD}
- sleep 3
- if [ -e $ZA_PID ]; then
- echo "done"
- else
- echo "false, please check log file!"
- fi
- fi
- }
- start_server() {
- if [ -e $ZS_PID ]; then
- echo "$ZABBIX_SERVER is running!"
- exit
- else
- echo -n "starting $ZABBIX_SERVER..."
- su ${SU_USER} -c ${ZABBIX_SERVER}
- sleep 3
- if [ -e $ZS_PID ]; then
- echo "done"
- else
- echo "false, please check log file!"
- fi
- fi
- }
- stop_agentd() {
- if [ -r $ZA_PID -a ! -z ${ZA_PID} ]; then
- PID=`${CAT} ${ZA_PID}`
- fi
- if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
- ${KILL} ${PID} && echo "stop $ZABBIX_AGENTD... done"
- else
- echo "stop $ZABBIX_AGENTD fail, Unable to read PID file $ZA_PID"
- fi
- }
- stop_server() {
- if [ -r $ZS_PID -a ! -z ${ZS_PID} ]; then
- PID=`${CAT} ${ZS_PID}`
- fi
- if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then
- ${KILL} ${PID} && echo "stop $ZABBIX_SERVER... done"
- else
- echo "stop $ZABBIX_SERVER fail, Unable to read PID file $ZS_PID"
- fi
- }
- usage="usage $0 {agent|server} {start|stop|restart}"
- case $1 in
- 'agentd')
- t='agentd'
- ;;
- 'server')
- t='server'
- ;;
- esac
- if [ ! -z $t ]; then
- case $2 in
- 'start')
- start_$t
- ;;
- 'stop')
- stop_$t
- ;;
- 'restart')
- stop_$t
- sleep 3 && \
- start_$t
- ;;
- *)
- echo $usage
- ;;
- esac
- else
- echo $usage
- fi
脚本在freebsd下测试通过,其他版本未测试。
转载于:https://blog.51cto.com/xiaosa/595947