summaryrefslogtreecommitdiff
path: root/app-admin/rsyslog/files/8-stable/rsyslog.initd
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/rsyslog/files/8-stable/rsyslog.initd')
-rw-r--r--app-admin/rsyslog/files/8-stable/rsyslog.initd69
1 files changed, 69 insertions, 0 deletions
diff --git a/app-admin/rsyslog/files/8-stable/rsyslog.initd b/app-admin/rsyslog/files/8-stable/rsyslog.initd
new file mode 100644
index 00000000000..a74f218e6a3
--- /dev/null
+++ b/app-admin/rsyslog/files/8-stable/rsyslog.initd
@@ -0,0 +1,69 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+RSYSLOG_CONFIGFILE=${RSYSLOG_CONFIGFILE:-"/etc/rsyslog.conf"}
+RSYSLOG_PIDFILE=${RSYSLOG_PIDFILE:-"/run/rsyslogd.pid"}
+
+command="/usr/sbin/rsyslogd"
+command_args="${RSYSLOG_OPTS} -f ${RSYSLOG_CONFIGFILE} -i ${RSYSLOG_PIDFILE}"
+start_stop_daemon_args="${RSYSLOG_SSDARGS}"
+pidfile="${RSYSLOG_PIDFILE}"
+retry="${RSYSLOG_TERMTIMEOUT}"
+
+required_files="${RSYSLOG_CONFIGFILE}"
+
+description="RSYSLOG is the rocket-fast system for log processing (syslog replacement)."
+
+extra_commands="configtest"
+extra_started_commands="rotate"
+
+description_configtest="Run rsyslogd's internal config check."
+
+description_rotate="Sends rsyslogd a signal to re-open its log files."
+
+depend() {
+ need clock hostname localmount
+ provide logger
+}
+
+start_pre() {
+ if [ "${RC_CMD}" != "restart" ]; then
+ configtest || return 1
+ fi
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" = "restart" ]; then
+ configtest || return 1
+ fi
+}
+
+stop_post() {
+ rm -f ${RSYSLOG_PIDFILE}
+}
+
+configtest() {
+ # This will currently only detect fatal errors
+ # See https://github.com/rsyslog/rsyslog/issues/79
+
+ local _test_command="${command} -N 999 -f ${RSYSLOG_CONFIGFILE}"
+ local _retval=0
+
+ ebegin "Checking rsyslogd's configuration"
+ ${_test_command} >/dev/null 2>&1
+ _retval=$?
+
+ if [ ${_retval} -ne 0 ]; then
+ ${_test_command}
+ fi
+
+ eend ${_retval} "failed, please correct errors above"
+}
+
+rotate() {
+ ebegin "Re-opening rsyslogd logs"
+ start-stop-daemon --signal SIGHUP --pidfile "${RSYSLOG_PIDFILE}"
+ eend $?
+}