]> git.pld-linux.org Git - packages/syslog-ng.git/blobdiff - syslog-ng.init
- emit started/stopped with --no-wait to prevent lock-ups on simple configuration...
[packages/syslog-ng.git] / syslog-ng.init
index b2ce2a8166b840cb8aafc728e54bc371317efce5..ba07012abb07764f90c41ade1ca7e38f6ce00111 100644 (file)
@@ -21,15 +21,30 @@ if [ -f /etc/sysconfig/syslog-ng ]; then
        . /etc/sysconfig/syslog-ng
 fi
 
+checkconfig() {
+       syslog-ng $OPTIONS -F -s -p /var/run/syslog-ng-syntaxcheck.pid
+       RETVAL=$?
+       return $RETVAL
+}
+
 configtest() {
-       syslog-ng $OPTIONS -s || exit 1
+       checkconfig 2>/dev/null
+       RETVAL=$?
+       if [ $RETVAL != 0 ]; then
+               show "Checking syslog-ng config syntax"
+               fail
+               echo >&2 "Configuration file syntax test failed. Run $0 configtest to see errors."
+               exit $RETVAL
+       fi
 }
 
 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 $OPTIONS
+               emit starting JOB=syslog-ng SERVICE=syslog
+               daemon /usr/sbin/syslog-ng -f /etc/syslog-ng/syslog-ng.conf $OPTIONS
+               emit --no-wait started JOB=syslog-ng SERVICE=syslog
                RETVAL=$?
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog-ng
        else
@@ -40,27 +55,59 @@ start() {
 stop() {
        if [ -f /var/lock/subsys/syslog-ng ]; then
                msg_stopping "syslog-ng"
+               emit stopping JOB=syslog-ng SERVICE=syslog
                killproc syslog-ng
+               emit --no-wait stopped JOB=syslog-ng SERVICE=syslog
                rm -f /var/lock/subsys/syslog-ng >/dev/null 2>&1
        else
-               msg_not_running syslog-ng
+               msg_not_running "syslog-ng"
        fi
 }
 
 condrestart() {
        if [ -f /var/lock/subsys/syslog-ng ]; then
+               configtest
                stop
                start
        else
-               msg_not_running syslog-ng
+               msg_not_running "syslog-ng"
                RETVAL=$1
        fi
 }
 
+reload() {
+       if [ -f /var/lock/subsys/syslog-ng ]; then
+               configtest
+               msg_reloading "syslog-ng"
+               killproc syslog-ng -HUP
+               RETVAL=$?
+       else
+               msg_not_running "syslog-ng"
+               exit 7
+       fi
+}
+
+flush_logs() {
+       if use_upstart && [ -f /etc/init/syslog-ng.conf ] ; then
+               /sbin/initctl reload syslog-ng
+       elif [ -f /var/lock/subsys/syslog-ng ]; then
+               configtest
+               msg_reloading "syslog-ng"
+               killproc syslog-ng -HUP
+               RETVAL=$?
+       else
+               msg_not_running "syslog-ng"
+               exit 7
+       fi
+}
+
+upstart_controlled --except configtest flush-logs
+
 RETVAL=0
 # See how we were called.
 case "$1" in
   start)
+       configtest
        start
        ;;
   stop)
@@ -72,43 +119,20 @@ 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 $?
+       show "Checking syslog-ng config syntax"
+       res=$(checkconfig 2>&1)
+       RETVAL=$?
+       [ $RETVAL = 0 ] && ok || fail
+       echo >&2 "$res"
        ;;
   status)
        status syslog-ng
This page took 0.063554 seconds and 4 git commands to generate.