diff options
author | Costa Tsaousis (ktsaou) <costa@tsaousis.gr> | 2016-01-30 15:05:43 +0200 |
---|---|---|
committer | Costa Tsaousis (ktsaou) <costa@tsaousis.gr> | 2016-01-30 15:05:43 +0200 |
commit | f0e9e57ed96efadfe99389d4ad435e10b26b3213 (patch) | |
tree | 4e482a5e973ae24a08eca04ccd24e3fd59899709 /system | |
parent | abf2f2eeae00ef7f014d280a244bbe4dd60bb928 (diff) |
added openrc startup
Diffstat (limited to 'system')
-rwxr-xr-x | system/netdata-openrc | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/system/netdata-openrc b/system/netdata-openrc new file mode 100755 index 0000000000..70d4da1579 --- /dev/null +++ b/system/netdata-openrc @@ -0,0 +1,117 @@ +#!/sbin/runscript + +# The path netdata has been installed. +# Leave it empty if netdata is installed in / +NETDATA_INSTALL_PATH=${NETDATA_INSTALL_PATH-} + +# 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_OWNER-netdata:netdata} + +# The URL to download netdata config. +NETDATA_CONFIG_URL=${NETDATA_CONFIG_URL-http://localhost:19999/netdata.conf} + +# The timeout in seconds to wait for netdata +# to save its database on disk and exit. +NETDATA_WAIT_EXIT_TIMEOUT=${NETDATA_WAIT_EXIT_TIMEOUT-15} + +# When set to 1, if netdata does not exit in +# NETDATA_WAIT_EXIT_TIMEOUT, we will force it +# to exit. +NETDATA_FORCE_EXIT=${NETDATA_FORCE_EXIT-0} + + +extra_started_commands="getconf" +pidfile="/var/run/netdata/netdata.pid" +command="${NETDATA_INSTALL_PATH}/usr/sbin/netdata" +command_background="yes" + +depend() { + use logger + need net + + # FIXME + # We should depend on these only if they are enabled: + # apache, squid, nginx, mysql, named, opensips, nut, hostapd, postfix, lm-sensors +} + +start() { + local ret + + if [ ! -d ${NETDATA_INSTALL_PATH}/var/cache/netdata ] + then + ebegin "Creating ${NETDATA_INSTALL_PATH}/var/cache/netdata" + mkdir -p ${NETDATA_INSTALL_PATH}/var/cache/netdata + chown ${NETDATA_OWNER} ${NETDATA_INSTALL_PATH}/var/cache/netdata + echo "${NETDATA_OWNER}" >${NETDATA_INSTALL_PATH}/var/cache/netdata/.last_owner + eend $? + fi + + if [ "$(cat ${NETDATA_INSTALL_PATH}/var/cache/netdata/.last_owner 2>/dev/null)" != "${NETDATA_OWNER}" ] + then + ebegin "Switching ownership of ${NETDATA_INSTALL_PATH}/var/cache/netdata" + chown -R ${NETDATA_OWNER} ${NETDATA_INSTALL_PATH}/var/cache/netdata + echo "${NETDATA_OWNER}" >${NETDATA_INSTALL_PATH}/var/cache/netdata/.last_owner + eend 0 + fi + + ebegin "Starting netdata" + start-stop-daemon --start --quiet --pidfile ${pidfile} --exec ${command} -- ${NETDATA_EXTRA_ARGS} + ret=$? + eend $ret + + if [ $ret -eq 0 -a ! -f ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf ] + then + ebegin "Downloading default configuration to ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf" + sleep 2 + curl -s -o ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf.new "${NETDATA_CONFIG_URL}" + ret=$? + if [ $ret -eq 0 -a -s ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf.new ] + then + mv ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf.new ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf + else + ret=1 + rm ${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf.new 2>/dev/null + fi + eend $ret + fi +} + +stop() { + local result ret=0 count=0 sigkill=0 + + ebegin "Stopping netdata" + start-stop-daemon --stop --quiet --pidfile ${pidfile} + result=$? + eend $result + + ebegin "Waiting for netdata to save its database" + while [ -f "${pidfile}" ] + do + if [ $count -gt ${NETDATA_WAIT_EXIT_TIMEOUT} ] + then + sigkill=1 + break + fi + + count=$[count + 1] + kill -0 $(cat ${pidfile}) 2>/dev/null + ret=$? + test $ret -eq 0 && sleep 1 + done + eend $sigkill + + if [ $sigkill -eq 1 -a -f "${pidfile}" ] + then + ebegin "Netdata is taking too long to exit, forcing it to quit" + kill -SIGKILL $(cat ${pidfile}) 2>/dev/null + eend $? + fi +} + +getconf() { + ebegin "Downloading configuration from netdata to /tmp/netdata.conf" + curl -o /tmp/netdata.conf "${NETDATA_CONFIG_URL}" + eend $? +} |