最近一段时间应为需要大量的调整修改Nagios的监控策略所以需要反复的重启nrpe,但是在Nagios安装后是没有提供nrpe的启动脚本,所以就自己顺手写了一个用于平时nrpe的重启:

#!/bin/sh
#The startup script for nrpe
#Author:jim
#processname:nrped
# chkconfig:  2345 97 03
#description:This is a daemon used for nrpe startup management in Nagios

#source functions library
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
elif [ -f /lib/lsb/init-functions ]; then
    . /lib/lsb/init-functions
fi

prefix="/usr/local/nagios"
nrpe_bin="${prefix}/bin/nrpe"
nrpe_config_file="${prefix}/etc/nrpe.cfg"
nrpe_num=$(ps aux | grep /bin/nrpe | grep -v grep | wc -l)
nrpe_pid=$(ps aux | grep /bin/nrpe | grep -v grep | awk '{print $2}')
RETVAL=0

start() 
{
   if [ $nrpe_num -eq 1 ];then

      echo_warning
      echo "nrpe is running "
   else
      ${nrpe_bin} -c ${nrpe_config_file} -d
      echo_success
      echo "Starting nrpe "
   fi
}

stop()
{
   if [ $nrpe_num -eq 1 ];then
      kill -9 $nrpe_pid
      echo_success
      echo "Starting nrpe "
   else
      echo_failure
      echo "nrpe is stoping "
   fi
}

restart()
{
   if [ $nrpe_num -eq 1 ];then
      kill -9 $nrpe_pid
      echo_success
      echo "Stopting nrpe "
      ${nrpe_bin} -c ${nrpe_config_file} -d
      echo_success
      echo "Starting nrpe "
   else
      echo_failure
      echo "nrpe is stoping "
      ${nrpe_bin} -c ${nrpe_config_file} -d
      echo_success
      echo "Starting nrpe "
   fi
}

case $1 in
 start)
      start
      ;;
 stop)
      stop
      ;;
 restart)
      restart
      ;;
       *)
      echo_failure
      echo "Usage: $0 {start|stop|restart}"
      RETVAL=2
esac

exit $RETVAL

总之来说还是比较简单的,其中有使用到系统的functions,可以参看:http://jim123.blog.51cto.com/4763600/1900432,其中要注意的一点是,把文件上传至/etc/init.d目录后需要授予执行权,然后用chkconfig加入系统中使service能管理到,如果是RedHat/Centos 7的系统还要使用systemctl daemon-reload重载一次:

[root@localhost init.d]# chmod +x nrped
[root@localhost init.d]# chkconfig --add nrped
chkconfig --list nrped

systemctl daemon-reload[root@localhost init.d]# chkconfig --list nrped
nrped           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[root@localhost init.d]# /etc/init.d/nrped restart
Stopting nrpe                                              [确定]
Starting nrpe                                              [确定]
[root@localhost init.d]# service nrped restart
Stopting nrpe                                              [确定]
Starting nrpe                                              [确定]