summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2')
-rw-r--r--app-misc/carbon-c-relay/files/carbon-c-relay.initd-r274
1 files changed, 74 insertions, 0 deletions
diff --git a/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2 b/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2
new file mode 100644
index 000000000000..fa0781dcddc8
--- /dev/null
+++ b/app-misc/carbon-c-relay/files/carbon-c-relay.initd-r2
@@ -0,0 +1,74 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="configtest"
+extra_started_commands="reload"
+
+description="Lightweight graphite metrics router and aggregator."
+description_configtest="Run carbon-c-relay's internal config check."
+description_reload="Reload the carbon-c-relay configuration without losing connections."
+
+routes_config=${ROUTES_FILE:-/etc/${SVCNAME}.conf}
+
+command="/usr/bin/carbon-c-relay"
+command_args="-f ${routes_config} ${EXTRA_OPTS}"
+pidfile="/run/carbon-c-relay/${SVCNAME}.pid"
+logfile=${LOGFILE:-/var/log/${SVCNAME}.log}
+user=${USER:-carbon}
+group=${GROUP:-carbon}
+
+depend() {
+ need net
+ use dns
+}
+
+start_pre() {
+ if [ "${RC_CMD}" != "restart" ]; then
+ configtest || return 1
+ fi
+ touch "${logfile}"
+ mkdir -p "${pidfile%/*}"
+ chown ${user}:${group} "${logfile}" "${pidfile%/*}"
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" = "restart" ]; then
+ configtest || return 1
+ fi
+}
+
+stop_post() {
+ rm -f "${pidfile}"
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --pidfile "${pidfile}" \
+ --user ${user} --group ${group} \
+ --exec ${command} -- -D -P "${pidfile}" -l "${logfile}" \
+ ${command_args}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ # migration path
+ local pfile=${pidfile}
+ [ -e /run/carbon-c-relay.pid ] && pfile="/run/carbon-c-relay.pid"
+ start-stop-daemon --stop --exec ${command} --pidfile "${pfile}"
+ eend $?
+}
+
+reload() {
+ configtest || return 1
+ ebegin "Refreshing ${SVCNAME}'s configuration"
+ kill -HUP $(cat "${pidfile}") >/dev/null 2>&1
+ eend $? "Failed to reload ${SVCNAME}"
+}
+
+configtest() {
+ ebegin "Checking ${SVCNAME}'s configuration"
+ ${command} -f "${routes_config}" -t < /dev/null > /dev/null
+ eend $? "failed, please correct errors above"
+}