本文共 2991 字,大约阅读时间需要 9 分钟。
创建NDO2DB服务脚本 创建文件/etc/init.d/ndo2db (vi /etc/init.d/ndo2db),写入下面的内容。
#!/bin/sh # # # chkconfig: 345 99 01 # description: Nagios to mysql # # Author : phenix # Realase : 07/02/08 # Version : 0.1 b # File : ndo2db # Description: Starts and stops the Ndo2db daemon # used to provide network services status in a database. #status_ndo () { if ps -p $NdoPID > /dev/null 2>&1; then return 0 else return 1 fireturn 1 }printstatus_ndo() { if status_ndo $1 $2; then echo "ndo (pid $NdoPID) is running..." else echo "ndo is not running" fi }killproc_ndo () { echo "kill $2 $NdoPID" kill $2 $NdoPID }pid_ndo () { if test ! -f $NdoRunFile; then echo "No lock file found in $NdoRunFile" echo -n " checking runing process..." NdoPID=`ps h -C ndo2db -o pid` if [ -z "$NdoPID" ]; then echo " No ndo2db process found" exit 1 else echo " found process pid: $NdoPID" echo -n " reinit $NdoRunFile ..." touch $NdoRunFile chown $NdoUser:$NdoGroup $NdoRunFile echo "$NdoPID" > $NdoRunFile echo " done" fi fiNdoPID=`head $NdoRunFile` }# Source function library # Solaris doesn't have an rc.d directory, so do a test first if [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions elif [ -f /etc/init.d/functions ]; then . /etc/init.d/functions fiprefix=/usr/local/nagios exec_prefix=${prefix} NdoBin=${exec_prefix}/bin/ndo2db NdoCfgFile=${prefix}/etc/ndo2db.cfg NdoRunFile=${prefix}/var/ndo2db.run NdoLockDir=/var/lock/subsys NdoLockFile=ndo2db.lock NdoUser=nagios NdoGroup=nagios# Check that ndo exists. if [ ! -f $NdoBin ]; then echo "Executable file $NdoBin not found. Exiting." exit 1 fi# Check that ndo.cfg exists. if [ ! -f $NdoCfgFile ]; then echo "Configuration file $NdoCfgFile not found. Exiting." exit 1 fi# See how we were called. case "$1" instart) echo -n "Starting ndo:" touch $NdoRunFile chown $NdoUser:$NdoGroup $NdoRunFile $NdoBin -c $NdoCfgFile if [ -d $NdoLockDir ]; then touch $NdoLockDir/$NdoLockFile; fi ps h -C ndo2db -o pid > $NdoRunFile if [ $? -eq 0 ]; then echo " done." exit 0 else echo " failed." $0 stop exit 1 fi ;;stop) echo -n "Stopping ndo: "pid_ndo killproc_ndo# now we have to wait for ndo to exit and remove its # own NdoRunFile, otherwise a following "start" could # happen, and then the exiting ndo will remove the # new NdoRunFile, allowing multiple ndo daemons # to (sooner or later) run #echo -n 'Waiting for ndo to exit .' for i in 1 2 3 4 5 6 7 8 9 10 ; do if status_ndo > /dev/null; then echo -n '.' sleep 1 else break fi done if status_ndo > /dev/null; then echo echo 'Warning - ndo did not exit in a timely manner' else echo 'done.' firm -f $NdoRunFile $NdoLockDir/$NdoLockFile ;;status) pid_ndo printstatus_ndo ndo ;;restart) $0 stop $0 start ;;*) echo "Usage: ndo {start|stop|restart|status}" exit 1 ;;esac # End of this script 增加可执行权限 # chmod +x /etc/init.d/ndo2db 自动启动 # chkconfig ndo2db on 注意:这里先不要创建ndo使用的数据库,在centreon安装完成以后创建即可
本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/323127 |
转载地址:http://dsuhl.baihongyu.com/