summaryrefslogtreecommitdiff
blob: 5af259d5ddf8338016058e4671b324e40b6c01ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/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
}