X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=syslog-ng.init;h=073a96f227c06aa9dc8aca1ff619a619f0b8cedb;hb=6277303e66b4de858e14f282cd51fbd88c499b49;hp=8dd1c0c428cee24c035312e36faaee71f341c007;hpb=e968d50c591a02ef25b8d6be9d3164336a4f8521;p=packages%2Fsyslog-ng.git diff --git a/syslog-ng.init b/syslog-ng.init old mode 100644 new mode 100755 index 8dd1c0c..073a96f --- a/syslog-ng.init +++ b/syslog-ng.init @@ -2,7 +2,7 @@ # # syslog Starts syslog-ng (syslogd replacement). # -# chkconfig: 2345 30 70 +# chkconfig: 2345 17 83 # description: Syslog is the facility by which many daemons use to log \ # messages to various system log files. It is a good idea to \ # always run syslog. @@ -10,50 +10,112 @@ # Source function library . /etc/rc.d/init.d/functions -# Set defaults -ENABLE_RECEIVE_FROM_NET=no -HOSTLIST="" -DOMAINLIST="" -MARK_TIMESTAMP="" - # Get service config if [ -f /etc/sysconfig/syslog-ng ]; then . /etc/sysconfig/syslog-ng fi +# configtest itself +# must return non-zero if check failed +# output is discarded if checkconfig is ran without details configtest() { - syslog-ng $OPTIONS -F -s -p /var/run/syslog-ng-syntaxcheck.pid || exit 1 + syslog-ng $OPTIONS -F -s -p /var/run/syslog-ng-syntaxcheck.pid + return $? } -start() { - # Check if the service is already running? - if [ ! -f /var/lock/subsys/syslog-ng ]; then - msg_starting "syslog-ng" - daemon /usr/sbin/syslog-ng -f /etc/syslog-ng/syslog-ng.conf $OPTIONS +# wrapper for configtest +checkconfig() { + local details=${1:-0} + + if [ $details = 1 ]; then + # run config test and display report (status action) + show "Checking %s configuration" "syslog-ng"; busy + local out + out=$(configtest 2>&1) RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog-ng + if [ $RETVAL = 0 ]; then + ok + else + fail + fi + [ "$out" ] && echo >&2 "$out" else + # run config test and abort with nice message if failed + # (for actions checking status before action). + configtest >/dev/null 2>&1 + RETVAL=$? + if [ $RETVAL != 0 ]; then + show "Checking %s configuration" "syslog-ng"; fail + nls 'Configuration test failed. See details with %s "checkconfig"' $0 + exit $RETVAL + fi + fi +} + +start() { + # Check if the service is already running? + if [ -f /var/lock/subsys/syslog-ng ]; then msg_already_running "syslog-ng" + return fi + + msg_starting "syslog-ng" + daemon @@SBINDIR@@/syslog-ng -f /etc/syslog-ng/syslog-ng.conf --worker-threads=1024 $OPTIONS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog-ng } stop() { - if [ -f /var/lock/subsys/syslog-ng ]; then - msg_stopping "syslog-ng" - killproc syslog-ng - rm -f /var/lock/subsys/syslog-ng >/dev/null 2>&1 - else + if [ ! -f /var/lock/subsys/syslog-ng ]; then msg_not_running "syslog-ng" + return fi + + msg_stopping "syslog-ng" + killproc syslog-ng + rm -f /var/lock/subsys/syslog-ng >/dev/null 2>&1 } condrestart() { - if [ -f /var/lock/subsys/syslog-ng ]; then - stop - start - else + if [ ! -f /var/lock/subsys/syslog-ng ]; then msg_not_running "syslog-ng" RETVAL=$1 + return + fi + + checkconfig + stop + start +} + +reload() { + if [ ! -f /var/lock/subsys/syslog-ng ]; then + msg_not_running "syslog-ng" + RETVAL=7 + return + fi + + checkconfig + msg_reloading "syslog-ng" + killproc syslog-ng -HUP + RETVAL=$? +} + +flush_logs() { + if [ -x /bin/systemd_booted ] && /bin/systemd_booted; then + checkconfig + msg_reloading "syslog-ng" + /bin/systemctl reload syslog-ng.service + RETVAL=$? + [ $RETVAL -eq 0 ] && ok || fail + elif [ -f /var/lock/subsys/syslog-ng ]; then + checkconfig + msg_reloading "syslog-ng" + killproc syslog-ng -HUP + RETVAL=$? + else + msg_not_running "syslog-ng" + RETVAL=7 fi } @@ -61,6 +123,7 @@ RETVAL=0 # See how we were called. case "$1" in start) + configtest start ;; stop) @@ -72,50 +135,23 @@ case "$1" in start ;; try-restart) - configtest condrestart 0 ;; reload|force-reload) - if [ -f /var/lock/subsys/syslog-ng ]; then - msg_reloading "syslog-ng" - configtest - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - killproc syslog-ng -HUP - RETVAL=$? - else - fail - echo >&2 "Configuration file syntax test failed." - fi - else - msg_not_running "syslog-ng" - exit 7 - fi + reload ;; flush-logs) - if [ -f /var/lock/subsys/syslog-ng ]; then - msg_reloading "syslog-ng" - configtest - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - killproc syslog-ng -HUP - RETVAL=$? - else - fail - echo >&2 "Configuration file syntax test failed." - fi - fi + flush_logs ;; - configtest) - configtest - exit $? + checkconfig|configtest) + checkconfig 1 ;; status) status syslog-ng exit $? ;; *) - msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status|configtest|flush-logs}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status|checkconfig|flush-logs}" exit 3 esac