zabbix在freebsd的rc启动控制脚本,

拷贝如下内容到/usr/local/etc/zabbix_ctl,并且修改权限为可执行:

 

 
  
  1. #!/bin/sh  
  2.  
  3. umask 022  
  4.  
  5. CAT=/bin/cat  
  6. KILL=/bin/kill  
  7.  
  8. SU_USER=zabbix 
  9.  
  10. # zabbix script  
  11. ZABBIX_SERVER=/usr/local/sbin/zabbix_server  
  12. ZABBIX_AGENTD=/usr/local/sbin/zabbix_agentd  
  13.  
  14. # pid file  
  15. ZS_PID=/tmp/zabbix_server.pid  
  16. ZA_PID=/tmp/zabbix_agentd.pid  
  17.  
  18. start_agentd() {  
  19. if [ -e $ZA_PID ]; then  
  20.         echo "$ZABBIX_AGENTD is running!"  
  21.         exit  
  22.     else  
  23.         echo -n "starting $ZABBIX_AGENTD..."  
  24.         su ${SU_USER} -c ${ZABBIX_AGENTD}  
  25.         sleep 3  
  26.         if [ -e $ZA_PID ]; then  
  27.             echo "done"  
  28.         else  
  29.             echo "false, please check log file!"  
  30.         fi  
  31.     fi    
  32. }  
  33.  
  34. start_server() {  
  35.     if [ -e $ZS_PID ]; then  
  36.         echo "$ZABBIX_SERVER is running!"  
  37.         exit  
  38.     else  
  39.         echo -n "starting $ZABBIX_SERVER..."
  40.         su ${SU_USER} -c ${ZABBIX_SERVER}  
  41.         sleep 3  
  42.         if [ -e $ZS_PID ]; then  
  43.             echo "done"  
  44.         else  
  45.             echo "false, please check log file!"  
  46.         fi  
  47.     fi    
  48. }  
  49.  
  50. stop_agentd() {  
  51.     if [  -r $ZA_PID  -a  ! -z ${ZA_PID}  ]; then  
  52.         PID=`${CAT} ${ZA_PID}`  
  53.     fi  
  54.     if [  ${PID:=0} -gt 1 -a  ! "X$PID" = "X "  ]; then  
  55.         ${KILL} ${PID} && echo "stop $ZABBIX_AGENTD... done"  
  56.     else  
  57.         echo "stop $ZABBIX_AGENTD fail, Unable to read PID file $ZA_PID"  
  58.     fi  
  59. }  
  60.  
  61. stop_server() {  
  62.     if [  -r $ZS_PID  -a  ! -z ${ZS_PID}  ]; then  
  63.         PID=`${CAT} ${ZS_PID}`  
  64.     fi  
  65.     if [  ${PID:=0} -gt 1 -a  ! "X$PID" = "X "  ]; then  
  66.         ${KILL} ${PID} && echo "stop $ZABBIX_SERVER... done"  
  67.     else  
  68.         echo "stop $ZABBIX_SERVER fail, Unable to read PID file $ZS_PID"  
  69.     fi  
  70. }  
  71.  
  72. usage="usage $0 {agentd|server} {start|stop|restart}" 
  73.  
  74.  
  75. case $1 in  
  76.  'agentd')  
  77.     t='agentd' 
  78.  ;;  
  79.  'server')  
  80.     t='server' 
  81.  ;;  
  82. esac  
  83.  
  84. if [ ! -z $t ]; then  
  85.     case $2 in  
  86.         'start')  
  87.             start_$t  
  88.         ;;  
  89.  
  90.         'stop')  
  91.             stop_$t  
  92.         ;;  
  93.  
  94.         'restart')  
  95.             stop_$t  
  96.             sleep 3 && \  
  97.             start_$t  
  98.         ;;  
  99.  
  100.         *)  
  101.             echo $usage  
  102.         ;;  
  103.     esac  
  104. else  
  105.   echo $usage  
  106. fi  

 

 

拷贝如下内容到:/usr/local/etc/rc.d/zabbix,修改权限为可执行:

 

 
  
  1. #!/bin/sh  
  2. # PROVIDE: zabbix  
  3. # REQUIRE: LOGIN  
  4. # KEYWORD: nojail shutdown  
  5.    
  6. . /etc/rc.subr  
  7. name="zabbix" 
  8.    
  9. rcvar=`set_rcvar`  
  10. start_cmd="${name}_start" 
  11. stop_cmd="${name}_stop" 
  12. load_rc_config $name  
  13.    
  14. eval "${rcvar}=\${${rcvar}:-'NO'}"  
  15.  
  16. ZABBIX_CTL=/usr/local/etc/zabbix_ctl  
  17.  
  18. zabbix_start()     
  19. {  
  20.     $ZABBIX_CTL agentd start && \  
  21.     $ZABBIX_CTL server start && \  
  22.     echo "zabbix started"  
  23. }  
  24.    
  25. zabbix_stop()    
  26. {  
  27.     $ZABBIX_CTL agentd stop && \  
  28.     $ZABBIX_CTL server stop && \      
  29.     echo "zabbix stopped"  
  30. }  
  31. run_rc_command  "$1"  

 

 

在/etc/rc.conf中加入:zabbix_enable="yes"

测试:/usr/local/etc/rc.d/zabbix restart

不明白哪个地方出问题,stop的时候,会提示:“ : not found”