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”
转载于:https://blog.51cto.com/xiaosa/595948