X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rsyslog.init;h=75ca7986b4c4d2bb416c91422fd731dc1c7ac29b;hb=e8ebd7d;hp=1a131c4c527450e6265fcb7e97b13f945bd1e199;hpb=292aac45ee856693821076741cdb5605fcfe0011;p=packages%2Frsyslog.git diff --git a/rsyslog.init b/rsyslog.init index 1a131c4..75ca798 100644 --- a/rsyslog.init +++ b/rsyslog.init @@ -19,73 +19,112 @@ if [ -f /etc/sysconfig/rsyslog ] ; then . /etc/sysconfig/rsyslog fi -start() { - if [ ! -f /var/lock/subsys/rsyslog ]; then - umask 077 - msg_starting rsyslogd - daemon rsyslogd $SYSLOGD_OPTIONS +configtest() { + rsyslogd $SYSLOGD_OPTIONS -N1 -i /var/run/rsyslogd-syntaxcheck.pid + return $? +} + +checkconfig() { + local details=${1:-0} + + if [ $details = 1 ]; then + show "Checking %s configuration" "rsyslog"; busy + local out + out=$(configtest 2>&1) RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rsyslog + if [ $RETVAL = 0 ]; then + ok + else + fail + fi + [ "$out" ] && echo >&2 "$out" else + configtest >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL != 0 ]; then + show "Checking %s configuration" "rsyslog"; fail + nls 'Configuration test failed. See details with %s "checkconfig"' $0 + exit $RETVAL + fi + fi +} + +start() { + if [ -f /var/lock/subsys/rsyslog ]; then msg_already_running rsyslogd + return fi + + umask 077 + msg_starting rsyslogd + daemon rsyslogd $SYSLOGD_OPTIONS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rsyslog } stop() { - if [ -f /var/lock/subsys/rsyslog ]; then - msg_stopping rsyslogd - killproc rsyslogd - rm -f /var/lock/subsys/rsyslog - else + if [ ! -f /var/lock/subsys/rsyslog ]; then msg_not_running rsyslogd + return fi + + msg_stopping rsyslogd + killproc rsyslogd + rm -f /var/lock/subsys/rsyslog } -reload() { - if [ -f /var/lock/subsys/rsyslog ]; then - msg_reloading rsyslogd - killproc --pidfile /var/run/syslogd.pid rsyslogd -HUP - RETVAL=$? - else +reload() { + if [ ! -f /var/lock/subsys/rsyslog ]; then msg_not_running rsyslogd RETVAL=7 + return fi + + msg_reloading rsyslogd + killproc --pidfile /var/run/syslogd.pid rsyslogd -HUP + RETVAL=$? } condrestart() { - if [ -f /var/lock/subsys/rsyslog ]; then - stop - start - else + if [ ! -f /var/lock/subsys/rsyslog ]; then msg_not_running rsyslogd RETVAL=$1 + return fi + + stop + start } RETVAL=0 case "$1" in start) - start - ;; + checkconfig + start + ;; stop) - stop - ;; + stop + ;; restart) - stop + checkconfig + stop start - ;; + ;; try-restart) condrestart 0 ;; reload|force-reload) reload ;; + checkconfig|configtest) + checkconfig 1 + ;; status) - status rsyslogd - ;; + status rsyslogd + ;; *) - msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" - exit 3 + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|checkconfig|status}" + exit 3 esac exit $RETVAL