File nrpe.init of Package nrpe

#!/bin/bash
#
# Copyright (c) 2010 SUSE Linux Products GmbH
# Authors: Lars Vogdt (2010-2012)
#
# /etc/init.d/nrpe
#   and its symbolic link
# /usr/sbin/rcnrpe
#
### BEGIN INIT INFO
# Provides:          nagios-nrpe
# Required-Start:    $remote_fs $syslog $network
# Should-Start:      cron
# Required-Stop:     $remote_fs $syslog
# Should-Stop:       cron
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: NRPE Nagios Remote Plugin Executor
# Description:       Start NRPE to allow remote execution of
#	Nagios plugins.
### END INIT INFO

NRPE_BIN="/usr/sbin/nrpe"
NRPE_CONFIG="/etc/nrpe.cfg"
DEFAULT_PIDFILE="/var/run/nrpe/nrpe.pid"

test -x $NRPE_BIN || { echo "$NRPE_BIN not installed";
    if [ "$1" = "stop" ]; then exit 0;
	else exit 5; fi; }

test -r $NRPE_CONFIG || { echo "$NRPE_CONFIG not existing";
    if [ "$1" = "stop" ]; then exit 0;
	else exit 6; fi; }

function get_value() {
    if [ -n "$2" ]; then
        set -- `grep ^$1 "$2" | sed 's@=@ @' | tr -d '[:cntrl:]'`
    else
        set -- `grep ^$1 "$NRPE_CONFIG" | sed 's@=@ @' | tr -d '[:cntrl:]'`
    fi
    shift # remove first ARG => search-string
    echo $*
}

# Shell functions sourced from /etc/rc.status:
. /etc/rc.status
# Reset status of this service
rc_reset

case "$1" in
    start)
		echo -n "Starting Nagios NRPE "
		pid_file="$(get_value pid_file)"
		nrpe_group="$(get_value nrpe_group)"
		nrpe_user="$(get_value nrpe_user)"
		: ${pid_file=:=$DEFAULT_PIDFILE}
		: ${nrpe_group:=nagios}
		: ${nrpe_user:=nagios}
		if [ -z "$pid_file" ]; then
			PIDDIR=$(dirname $pid_file)
		else
			PIDDIR=$(dirname $DEFAULT_PIDFILE)
		fi
		case "$PIDDIR" in 
			/var/run)
				if [ x"$nrpe_user" != x"root" ]; then
					DATESTRING=$(date +"%Y%m%d")
					mv -f "$NRPE_CONFIG"  "$NRPE_CONFIG-$DATESTRING"
					sed -e "s|^pid_file.*|pid_file=$DEFAULT_PIDFILE|g" "$NRPE_CONFIG-$DATESTRING" > "$NRPE_CONFIG" 
					/bin/logger -t rcnrpe "Configured $pid_file in $NRPE_CONFIG moved to $DEFAULT_PIDFILE. Backup is $NRPE_CONFIG-$DATESTRING"
					echo
					echo "Configured $pid_file in $NRPE_CONFIG moved to $DEFAULT_PIDFILE. Backup is $NRPE_CONFIG-$DATESTRING"
					test -f "$pid_file" && rm "$pid_file"
					install -d -m755 -o$nrpe_user -g$nrpe_group $(dirname "$DEFAULT_PIDFILE")
				else
					test -d "$PIDDIR" || mkdir -p "$PIDDIR"
				fi
			;;
			*)
				test -d $(dirname "$DEFAULT_PIDFILE") || install -d -m755 -o$nrpe_user -g$nrpe_group $(dirname "$DEFAULT_PIDFILE")
			;;
		esac
		/sbin/startproc $NRPE_BIN -c $NRPE_CONFIG -d
		rc_status -v
	;;
	stop)
		echo -n "Shutting down Nagios NRPE "
		/sbin/killproc -TERM $NRPE_BIN
		rc_status -v
	;;
    try-restart|condrestart)
		if test "$1" = "condrestart"; then
				echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
		fi
		$0 status
		if test $? = 0; then
				$0 restart
		else
			rc_reset	# Not running is not a failure.
		fi
		rc_status
        ;;
    restart)
		$0 stop
		$0 start
		rc_status
	;;
    reload|force-reload)
		echo -n "Reload service Nagios NRPE "
		/sbin/killproc -HUP $NRPE_BIN
		rc_status -v
	;;
    status)
		echo -n "Checking for service Nagios NRPE "
		/sbin/checkproc $NRPE_BIN
		rc_status -v
	;;
    *)
		echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
		exit 1
	;;
esac
rc_exit
openSUSE Build Service is sponsored by