diff options
Diffstat (limited to 'net-mgmt/nagios/files/nagios.in')
-rw-r--r-- | net-mgmt/nagios/files/nagios.in | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/net-mgmt/nagios/files/nagios.in b/net-mgmt/nagios/files/nagios.in new file mode 100644 index 000000000000..e1afec9ced54 --- /dev/null +++ b/net-mgmt/nagios/files/nagios.in @@ -0,0 +1,70 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: nagios +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable nagios: +# nagios_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable nagios. +# nagios_flags (str): Set to "" by default. +# nagios_configfile (str): Set to "%%PREFIX%%/etc/nagios/nagios.cfg" by default. +# + +. %%RC_SUBR%% + +name="nagios" +rcvar=`set_rcvar` + +command="%%PREFIX%%/bin/nagios" +command_args="-d" +extra_commands="reload" +pidfile="%%NAGIOSDIR%%/nagios.lock" +nagios_user="%%NAGIOSUSER%%" + +start_precmd="start_precmd" +stop_postcmd="stop_postcmd" +restart_precmd="nagios_checkconfig" +reload_precmd="nagios_checkconfig" +sig_reload=HUP + +[ -z "${nagios_enable}" ] && nagios_enable="NO" +[ -z "${nagios_flags}" ] && nagios_flags="" +[ -z "${nagios_configfile}" ] && nagios_configfile="%%PREFIX%%/etc/nagios/nagios.cfg" + +load_rc_config "${name}" + +required_files="${nagios_configfile}" +command_args="${command_args} ${nagios_configfile}" + +nagios_checkconfig() { + echo -n "Performing sanity check of nagios configuration: " + ${command} -v ${nagios_configfile} 2>&1 >/dev/null + if [ $? != 0 ]; then + echo "FAILED" + ${command} -v ${nagios_configfile} + return 1 + else + echo "OK" + fi +} + +start_precmd() { + if ! nagios_checkconfig; then + return 1 + fi + + su -m "${nagios_user}" -c "touch \"%%NAGIOSDIR%%/nagios.log\" \"%%NAGIOSDIR%%/status.sav\"" + rm -f "%%NAGIOSDIR%%/rw/nagios.cmd" +} + +stop_postcmd() { + rm -f "%%NAGIOSDIR%%/nagios.tmp" "%%NAGIOSDIR%%/rw/nagios.cmd" +} + +run_rc_command "$1" |