diff options
Diffstat (limited to 'core/syslog-ng/syslog-ng.rc')
-rwxr-xr-x | core/syslog-ng/syslog-ng.rc | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/core/syslog-ng/syslog-ng.rc b/core/syslog-ng/syslog-ng.rc index fbd41fc7b..bb5320b2c 100755 --- a/core/syslog-ng/syslog-ng.rc +++ b/core/syslog-ng/syslog-ng.rc @@ -3,10 +3,20 @@ . /etc/rc.conf . /etc/rc.d/functions +checkconfig() { + syslog-ng -s -f /etc/syslog-ng/syslog-ng.conf + if [ $? -gt 0 ]; then + stat_busy "Configuration error. Please fix your config file (/etc/syslog-ng/syslog-ng.conf)." + stat_fail + exit 0 + fi +} + PID=`pidof -o %PPID /usr/sbin/syslog-ng` case "$1" in start) stat_busy "Starting Syslog-NG" + checkconfig [ -z "$PID" ] && /usr/sbin/syslog-ng if [ $? -gt 0 ]; then stat_fail @@ -17,7 +27,7 @@ case "$1" in ;; stop) stat_busy "Stopping Syslog-NG" - [ ! -z "$PID" ] && kill $PID &> /dev/null + [ ! -z "$PID" ] && kill $PID &> /dev/null if [ $? -gt 0 ]; then stat_fail else @@ -28,12 +38,26 @@ case "$1" in stat_done fi ;; + reload) + stat_busy "Reloading Syslog-NG configuration and re-opening log files" + if [ -z "$PID" ]; then + stat_fail + else + checkconfig + kill -HUP $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + fi + ;; restart) $0 stop sleep 1 $0 start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart|reload}" esac exit 0 |