summaryrefslogtreecommitdiffstats
path: root/system/netdata-openrc.in
blob: 15887892940b0f20774dfd32ee7840b4e743ae92 (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
82
83
84
85
86
87
88
#!/sbin/openrc-run
# SPDX-License-Identifier: GPL-3.0-or-later

# The user netdata is configured to run as.
# If you edit its configuration file to set a different
# user, set it here too, to have its files switch ownership
: "${NETDATA_OWNER:=@netdata_user_POST@:@netdata_user_POST@}"

# The timeout in seconds to wait for netdata
# to save its database on disk and exit.
: "${NETDATA_WAIT_EXIT_TIMEOUT:=60}"

# When set to 1, if netdata does not exit in
# NETDATA_WAIT_EXIT_TIMEOUT, we will force it
# to exit.
: "${NETDATA_FORCE_EXIT:=0}"

# When set to 1, we use netdatacli for reload/rotate/save commands instead of s-s-d.
: "${NETDATA_USE_NETDATACLI:=0}"

# Specifies the pidfile to use when running in the background.
: "${NETDATA_PIDFILE:=@localstatedir_POST@/run/netdata/netdata.pid}"

extra_started_commands="reload rotate save"
command_prefix="@sbindir_POST@"
command="${command_prefix}/netdata"
command_args="-P ${NETDATA_PIDFILE} ${NETDATA_EXTRA_ARGS}"
command_args_foreground="-D"
start_stop_daemon_args="-u ${NETDATA_OWNER}"
if [ "${NETDATA_FORCE_EXIT}" -eq 1 ]; then
    retry="TERM/${NETDATA_WAIT_EXIT_TIMEOUT}/KILL/1"
else
    retry="TERM/${NETDATA_WAIT_EXIT_TIMEOUT}"
fi

depend() {
    use logger
    need net
    after apache2 squid nginx mysql named opensips upsd hostapd postfix lm_sensors
}

start_pre() {
    checkpath -o ${NETDATA_OWNER} -d @localstatedir_POST@/cache/netdata @localstatedir_POST@/run/netdata

    if [ -z "${supervisor}" ]; then
        pidfile="${NETDATA_PIDFILE}"
    fi
}

run_cmd() {
    cmd="${1}"
    msg="${2}"
    failmsg="${3}"
    signal="${4}"

    ebegin "${msg}"
    if [ "${NETDATA_USE_NETDATACLI}" = 1 ]; then
        "${command_prefix}/netdatacli" "${cmd}" >/dev/null
        eend $? "${failmsg}"
    elif [ "${supervisor}" = "supervise-daemon" ]; then
        supervise-daemon "${RC_SVCNAME}" --signal "${signal}"
        eend $? "${failmsg}"
    else
        start-stop-daemon --signal "${signal}" --pidfile "${pidfile}"
        eend $? "${failmsg}"
    fi
}

reload() {
    run_cmd reload-health \
            "Reloading Netdata health configuration" \
            "Failed to reload Netdata health configuration" \
            SIGUSR2
}

rotate() {
    run_cmd reopen-logs \
            "Reopening Netdata log files" \
            "Failed to reopen Netdata log files" \
            SIGHUP
}

save() {
    run_cmd save-database \
            "Saving Netdata database" \
            "Failed to save Netdata database" \
            SIGUSR1
}