From: Michael Friedrich Date: Sun, 16 Mar 2014 22:26:47 +0000 (+0100) Subject: Do not start, restart, reload on config validation errors. X-Git-Tag: v0.0.9~89 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e9f2f57a3016da921a73230ac6afd72b9833b64;p=icinga2 Do not start, restart, reload on config validation errors. Fixes #5781 --- diff --git a/etc/init.d/icinga2.cmake b/etc/init.d/icinga2.cmake index f7bb476b1..e550dc272 100644 --- a/etc/init.d/icinga2.cmake +++ b/etc/init.d/icinga2.cmake @@ -58,12 +58,6 @@ start() { chown $ICINGA2_USER:$ICINGA2_COMMAND_GROUP $ICINGA2_STATE_DIR/run/icinga2/cmd chmod 2755 $ICINGA2_STATE_DIR/run/icinga2/cmd - echo "Validating the configuration file:" - if ! $DAEMON -c $ICINGA2_CONFIG_FILE -C; then - echo "Not starting Icinga 2 due to configuration errors." - exit 1 - fi - echo "Starting Icinga 2: " $DAEMON -c $ICINGA2_CONFIG_FILE -d -e $ICINGA2_ERROR_LOG -u $ICINGA2_USER -g $ICINGA2_GROUP @@ -125,8 +119,13 @@ reload() { checkconfig() { printf "Checking configuration:" - echo "Validating the configuration file:" - exec $DAEMON -c $ICINGA2_CONFIG_FILE -C + echo "Validating the configuration file:" + if ! $DAEMON -c $ICINGA2_CONFIG_FILE -C; then + echo "Not "$1"ing Icinga 2 due to configuration errors." + if [ "x$2" = "xfail" ]; then + exit 1 + fi + fi } # Print status for Icinga 2 @@ -145,6 +144,7 @@ status() { ### main logic ### case "$1" in start) + checkconfig start fail start ;; stop) @@ -154,10 +154,12 @@ case "$1" in status ;; restart|condrestart) + checkconfig restart fail stop nofail start ;; reload) + checkconfig reload fail reload ;; checkconfig)