zabbix的rc控制脚本
zabbix在freebsd的rc启动控制脚本,拷贝如下内容到/usr/local/etc/zabbix_ctl,并且修改权限为可执行:
[*]#!/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 {agentd|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
拷贝如下内容到:/usr/local/etc/rc.d/zabbix,修改权限为可执行:
[*]#!/bin/sh
[*]# PROVIDE: zabbix
[*]# REQUIRE: LOGIN
[*]# KEYWORD: nojail shutdown
[*]
[*]. /etc/rc.subr
[*]name="zabbix"
[*]
[*]rcvar=`set_rcvar`
[*]start_cmd="${name}_start"
[*]stop_cmd="${name}_stop"
[*]load_rc_config $name
[*]
[*]eval "${rcvar}=\${${rcvar}:-'NO'}"
[*]
[*]ZABBIX_CTL=/usr/local/etc/zabbix_ctl
[*]
[*]zabbix_start()
[*]{
[*] $ZABBIX_CTL agentd start && \
[*] $ZABBIX_CTL server start && \
[*] echo "zabbix started"
[*]}
[*]
[*]zabbix_stop()
[*]{
[*] $ZABBIX_CTL agentd stop && \
[*] $ZABBIX_CTL server stop && \
[*] echo "zabbix stopped"
[*]}
[*]run_rc_command"$1"
在/etc/rc.conf中加入:zabbix_enable="yes"
测试:/usr/local/etc/rc.d/zabbix restart
不明白哪个地方出问题,stop的时候,会提示:“ : not found”
页:
[1]