* Chris Lawrence <[EMAIL PROTECTED]> [20080326 15:30]: > On Wed, Mar 26, 2008 at 7:08 AM, Michael Prokop <[EMAIL PROTECTED]> wrote: > > Package: lsb-base > > Version: 3.2-1 > > Severity: important
[...] > > AFAICS the changes from #453636 (being in lsb >=3.2-1) are breaking > > init script(s). > Could you send me (and [EMAIL PROTECTED]) /etc/init.d/nagios3 on > your system? Sure, see attached file. thx && regards, -mika-
#! /bin/sh
# Written by Miquel van Smoorenburg <[EMAIL PROTECTED]>.
# Modified for Debian GNU/Linux
# by Ian Murdock <[EMAIL PROTECTED]>.
# Clamav version by Magnus Ekdahl <[EMAIL PROTECTED]>
# Nagios version by Sean Finney <[EMAIL PROTECTED]> and probably
others
# nagios2 version by Marc Haber <[EMAIL PROTECTED]>
### BEGIN INIT INFO
# Provides: nagios3
# Required-Start: $local_fs $remote_fs $syslog $named $network $time
# Required-Stop: $local_fs $remote_fs $syslog $named $network
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: nagios host/service/network monitoring and management
system
# Description: nagios is a monitoring and management system for hosts,
services and networks.
### END INIT INFO
set -e
if ! [ -x "/lib/lsb/init-functions" ]; then
. /lib/lsb/init-functions
else
echo "E: /lib/lsb/init-functions not found, lsb-base (>= 3.0-6) needed"
exit 1
fi
DAEMON=/usr/sbin/nagios3
NAME="nagios3"
DESC="nagios3 monitoring daemon"
NAGIOSCFG="/etc/nagios3/nagios.cfg"
CGICFG="/etc/nagios3/cgi.cfg"
NICENESS=5
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/nagios3 ] && . /etc/default/nagios3
# this is from madduck on IRC, 2006-07-06
# There should be a better possibility to give daemon error messages
# and/or to log things
log()
{
case "$1" in
[[:digit:]]*) success=$1; shift;;
*) :;;
esac
log_action_begin_msg "$1"; shift
log_action_end_msg ${success:-0} "$*"
}
check_started () {
check_cmd=$(get_config nagios_check_command $CGICFG)
if [ ! "$check_cmd" ]; then
log 6 "unable to determine nagios_check_command from $CGICFG!"
return 6
fi
eval $check_cmd >/dev/null
if [ -f "$THEPIDFILE" ]; then
pid="$(cat $THEPIDFILE)"
if [ "$pid" ] && kill -0 $pid >/dev/null; then
return 0 # Is started
fi
fi
return 1 # Isn't started
}
#
# get_config()
#
# grab a config option from nagios.cfg (or possibly another nagios config
# file if specified). everything after the '=' is echo'd out, making
# this a nice generalized way to get requested settings.
#
get_config () {
if [ "$2" ]; then
set -- `grep ^$1 $2 | sed '[EMAIL PROTECTED]@ @'`
else
set -- `grep ^$1 $NAGIOSCFG | sed '[EMAIL PROTECTED]@ @'`
fi
shift
echo $*
}
check_config () {
if $DAEMON -v $NAGIOSCFG >/dev/null 2>&1 ; then
# First get the user/group etc Nagios is running as
nagios_user="$(get_config nagios_user)"
nagios_group="$(get_config nagios_group)"
log_file="$(get_config log_file)"
log_dir="$(dirname $log_file)"
return 0 # Config is ok
else
# config is not okay, so let's barf the error to the user
$DAEMON -v $NAGIOSCFG
fi
}
check_named_pipe () {
nagiospipe="$(get_config command_file)"
if [ -p "$nagiospipe" ]; then
return 1 # a named pipe exists
else
return 0 # no named pipe exists
fi
}
if [ ! -f "$NAGIOSCFG" ]; then
log_failure_msg "There is no configuration file for Nagios 3."
exit 6
fi
THEPIDFILE=$(get_config "lock_file")
[ -n "$THEPIDFILE" ] || THEPIDFILE='/var/run/nagios3/nagios.pid'
start () {
DIRECTORY=$(dirname $THEPIDFILE)
[ ! -d $DIRECTORY ] && mkdir -p $DIRECTORY
chown nagios:nagios $DIRECTORY
if ! check_started; then
if ! check_named_pipe; then
log_action_msg "named pipe exists - removing"
rm -f $nagiospipe
fi
if check_config; then
start_daemon -n $NICENESS -p $THEPIDFILE $DAEMON -d $NAGIOSCFG
ret=$?
else
log_failure_msg "errors in config!"
log_end_msg 1
exit 1
fi
else
log_failure_msg "already running!"
log_end_msg 1
exit 1
fi
return $ret
}
stop () {
killproc -p $THEPIDFILE
ret=$?
if ! check_named_pipe; then
rm -f $nagiospipe
fi
if [ -n "$ret" ]; then
return $ret
else
return $?
fi
}
status()
{
log_action_begin_msg "checking $DAEMON"
if check_started; then
log_action_end_msg 0 "running"
else
if [ -e "$THEPIDFILE" ]; then
log_action_end_msg 1 "$DAEMON failed"
exit 1
else
log_action_end_msg 0 "not running"
exit 3
fi
fi
}
reload () {
# Check first
if check_config; then
if check_started; then
killproc -p $THEPIDFILE $DAEMON 1
else
log_failure_msg "Not running."
log_end_msg 7
exit 7
fi
else
log_failure_msg "errors in config!"
log_end_msg 6
exit 6
fi
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
stop
log_end_msg $?
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
stop
if [ -z "$?" -o "$?" = "0" ]; then
start
fi
log_end_msg $?
;;
reload|force-reload)
log_daemon_msg "Reloading $DESC configuration files" "$NAME"
reload
log_end_msg $?
;;
status)
status
;;
*)
log_failure_msg "Usage: $0 {start|stop|restart|reload|force-reload|status}"
>&2
exit 1
;;
esac
exit 0
signature.asc
Description: Digital signature

