#!/sbin/runscript # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ 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 _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 $? }