#!/bin/sh # Nagios Startup script for the Nagios monitoring daemon # # chkconfig: - 85 15 # description: Nagios is a service monitoring system # processname: nagios # config: /etc/nagios/nagios.cfg # pidfile: /var/nagios/nagios.pid # ### BEGIN INIT INFO # Provides: nagios # Required-Start: $local_fs $syslog $network # Required-Stop: $local_fs $syslog $network # Short-Description: start and stop Nagios monitoring server # Description: Nagios is is a service monitoring system ### END INIT INFO # Source function library. #. /etc/rc.d/init.d/functions . /etc/rc.status prefix="/usr/local/nagios" exec_prefix="${prefix}" exec="${exec_prefix}/bin/nagios" prog="nagios" config="${prefix}/etc/nagios.cfg" pidfile="${prefix}/var/nagios.lock" user="nagios" group="nagios" checkconfig="false" ramdiskdir="/var/nagios/ramcache" test -e /etc/sysconfig/$prog && . /etc/sysconfig/$prog lockfile=/var/lock/subsys/$prog USE_RAMDISK=${USE_RAMDISK:-0} if test "$USE_RAMDISK" -ne 0 && test "$RAMDISK_SIZE"X != "X"; then ramdisk=`mount |grep "$ramdiskdir type tmpfs"` if [ "$ramdisk"X == "X" ]; then mkdir -p -m 0755 $ramdiskdir mount -t tmpfs -o size=${RAMDISK_SIZE}m tmpfs $ramdiskdir mkdir -p -m 0755 $ramdiskdir/checkresults chown -R $user:$group $ramdiskdir fi fi check_config() { TMPFILE="/tmp/.configtest.$$" /sbin/service nagios configtest > "$TMPFILE" WARN=`grep ^"Total Warnings:" "$TMPFILE" |awk -F: '{print \$2}' |sed s/' '//g` ERR=`grep ^"Total Errors:" "$TMPFILE" |awk -F: '{print \$2}' |sed s/' '//g` if test "$WARN" = "0" && test "${ERR}" = "0"; then echo "OK - Configuration check verified" > /var/run/nagios.configtest chmod 0644 /var/run/nagios.configtest /bin/rm "$TMPFILE" return 0 else # We'll write out the errors to a file we can have a # script watching for echo "WARNING: Errors in config files - see log for details: $TMPFILE" > /var/run/nagios.configtest egrep -i "(^warning|^error)" "$TMPFILE" >> /var/run/nagios.configtest chmod 0644 /var/run/nagios.configtest cat "$TMPFILE" exit 8 fi } start() { test -x $exec || exit 5 test -f $config || exit 6 if test "$checkconfig" == "false"; then check_config fi echo -n $"Starting $prog: " # We need to _make sure_ the precache is there and verified # Raise priority to make it run better # daemon --user=$user $exec -ud $config startproc -u $user $exec -ud $config retval=$? #echo test $retval -eq 0 && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " # killproc -p ${pidfile} -d 10 $exec killproc -p $pidfile -t 10 $exec retval=$? # echo test $retval -eq 0 && rm -f $lockfile return $retval } restart() { check_config checkconfig="true" stop rc_status -v start rc_status -v } reload() { echo -n $"Reloading $prog: " killproc -p ${pidfile} $exec -HUP RETVAL=$? #echo } force_reload() { restart } case "$1" in start) #status $prog && exit 0 $1 rc_status -v #$1 ;; stop) #status $prog|| exit 0 $1 rc_status -v #$1 ;; restart) echo "Restarting $prog:" $1 ;; reload) #status $prog || exit 7 $1 rc_status -v # $1 ;; force-reload) force_reload ;; status) #status $prog echo -n "Checking for $prog:" checkproc $prog rc_status -v ;; condrestart|try-restart) #status $prog|| exit 0 rc_status -v restart ;; configtest) # $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config" $nice su -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $exec -vp $config" RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac exit $?