summaryrefslogtreecommitdiffstats
path: root/system/netdata-openrc.in
diff options
context:
space:
mode:
Diffstat (limited to 'system/netdata-openrc.in')
-rw-r--r--system/netdata-openrc.in64
1 files changed, 46 insertions, 18 deletions
diff --git a/system/netdata-openrc.in b/system/netdata-openrc.in
index 2acf282e6..158878929 100644
--- a/system/netdata-openrc.in
+++ b/system/netdata-openrc.in
@@ -4,7 +4,7 @@
# 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:netdata}"
+: "${NETDATA_OWNER:=@netdata_user_POST@:@netdata_user_POST@}"
# The timeout in seconds to wait for netdata
# to save its database on disk and exit.
@@ -15,16 +15,18 @@
# to exit.
: "${NETDATA_FORCE_EXIT:=0}"
-# Netdata will use these services, only if they
-# are enabled to start.
-: "${NETDATA_START_AFTER_SERVICES:=apache2 squid nginx mysql named opensips upsd hostapd postfix lm_sensors}"
+# 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"
-pidfile="@localstatedir_POST@/run/netdata/netdata.pid"
-command="@sbindir_POST@/netdata"
-command_args="-P ${pidfile} ${NETDATA_EXTRA_ARGS}"
+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}"
-required_files="/etc/netdata/netdata.conf"
if [ "${NETDATA_FORCE_EXIT}" -eq 1 ]; then
retry="TERM/${NETDATA_WAIT_EXIT_TIMEOUT}/KILL/1"
else
@@ -34,27 +36,53 @@ fi
depend() {
use logger
need net
- after ${NETDATA_START_AFTER_SERVICES}
+ 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() {
- ebegin "Reloading Netdata"
- start-stop-daemon --signal SIGUSR2 --pidfile "${pidfile}"
- eend $? "Failed to reload Netdata"
+ run_cmd reload-health \
+ "Reloading Netdata health configuration" \
+ "Failed to reload Netdata health configuration" \
+ SIGUSR2
}
rotate() {
- ebegin "Logrotating Netdata"
- start-stop-daemon --signal SIGHUP --pidfile "${pidfile}"
- eend $? "Failed to logrotate Netdata"
+ run_cmd reopen-logs \
+ "Reopening Netdata log files" \
+ "Failed to reopen Netdata log files" \
+ SIGHUP
}
save() {
- ebegin "Saving Netdata database"
- start-stop-daemon --signal SIGUSR1 --pidfile "${pidfile}"
- eend $? "Failed to save Netdata database"
+ run_cmd save-database \
+ "Saving Netdata database" \
+ "Failed to save Netdata database" \
+ SIGUSR1
}