#!/sbin/openrc-run # Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 extra_started_commands="reload" # Set defaults, see /etc/conf.d/icinga2 to override : ${DAEMON:=/usr/sbin/icinga2} : ${ICINGA2_CONFIG_FILE:=/etc/icinga2/icinga2.conf} : ${ICINGA2_RUN_DIR:=/run/icinga2} : ${ICINGA2_STATE_DIR:=/var/cache/icinga2} : ${ICINGA2_PID_FILE:=${ICINGA2_RUN_DIR}/icinga2.pid} : ${ICINGA2_CMD_DIR:=${ICINGA2_RUN_DIR}/cmd} : ${ICINGA2_LOG_DIR:=/var/log/icinga2} : ${ICINGA2_ERROR_LOG:=/var/log/icinga2/error.log} : ${ICINGA2_STARTUP_LOG:=/var/log/icinga2/startup.log} : ${ICINGA2_LOG:=/var/log/icinga2/icinga2.log} : ${ICINGA2_CACHE_DIR:=/var/cache/icinga2} : ${ICINGA2_USER:=icinga} : ${ICINGA2_GROUP:=icingacmd} : ${ICINGA2_COMMAND_GROUP:=icingacmd} ICINGA2_DAEMON_ARGS="daemon -c $ICINGA2_CONFIG_FILE -e $ICINGA2_ERROR_LOG -d" depend() { need net } checkconfig() { if [ ! -e "$ICINGA2_CONFIG_FILE" ]; then ewarn "Config file '$ICINGA2_CONFIG_FILE' does not exist." eend 1 fi checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_RUN_DIR checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_STATE_DIR checkpath -d -m 2750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_CMD_DIR checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_CACHE_DIR if ! $DAEMON daemon -c $ICINGA2_CONFIG_FILE -C > $ICINGA2_STARTUP_LOG 2>&1; then eerror "Icinga2 detected configuration errors. Check '$ICINGA2_STARTUP_LOG' for details." return 1 fi } start() { checkconfig || return 1 ebegin "Starting icinga2" start-stop-daemon --start --exec "${DAEMON}" \ --pidfile "${ICINGA2_PID_FILE}" \ -- $ICINGA2_DAEMON_ARGS > $ICINGA2_STARTUP_LOG 2>&1 local retval=$? if [ $retval -ne 0 ]; then ewarn "Error starting icinga2. '$ICINGA2_STARTUP_LOG' for details." fi eend $retval } stop() { ebegin "Stopping icinga2" start-stop-daemon \ --stop \ --pidfile $ICINGA2_PID_FILE \ --retry "SIGTERM/15 SIGKILL/30" \ --progress eend $? } reload() { checkconfig || return 1 ebegin "Reloading icinga2" start-stop-daemon --signal HUP --pidfile "$ICINGA2_PID_FILE" local retval=$? if [ $retval -ne 0 ]; then ewarn "Error reloading icinga2." fi eend $retval }