Blob Blame History Raw
#!/bin/sh
#
# syslog-ng starts/stops syslog-ng service
#
# chkconfig: - 12 88
# description: Syslog is the facility by which many daemons use to log \
#     messages to various system log files.
#

### BEGIN INIT INFO
# Provides: $syslog
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Short-Description: Next-generation syslog server
# Description: syslog-ng, as the name shows, is a syslogd replacement, but
#     with new functionality for the new generation. The original syslogd
#     allows messages only to be sorted based on priority/facility pairs;
#     syslog-ng adds the possibility to filter based on message contents
#     using regular expressions. The new configuration scheme is intuitive
#     and powerful.  Forwarding logs over TCP and remembering all forwarding
#     hops makes it ideal for firewalled environments.  
### END INIT INFO

# Source function library.
. /etc/init.d/functions

[ -e /etc/sysconfig/syslog-ng ] && . /etc/sysconfig/syslog-ng

RETVAL=0

check_syntax()
{
	[ -x /sbin/syslog-ng ] || exit 5
	syslog-ng -s $SYSLOGNG_OPTIONS
	RETVAL=$?
	return $RETVAL
}

verify_config()
{
	check_syntax
	RETVAL=$?
	[ $RETVAL -eq 0 ] || exit $retval
}

checkconfig()
{
	action $"Checking Configuration: " check_syntax
}

start()
{
	verify_config
	echo -n $"Starting syslog-ng: "
	if [ -e $SYSLOGNG_COMPAT_PID ]; then
		failure "PID file for existing syslog daemon exists"
	fi
	daemon syslog-ng $SYSLOGNG_OPTIONS
	ln -sf $SYSLOGNG_PID $SYSLOGNG_COMPAT_PID
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog-ng
	return $RETVAL
}

stop()
{
	echo -n $"Stopping syslog-ng: "
	REMOVE_COMPAT_PID=0
	if [ -e $SYSLOGNG_PID ]; then
		if [ -e $SYSLOGNG_COMPAT_PID -a $(<$SYSLOGNG_PID) == $(<$SYSLOGNG_COMPAT_PID) ]; then
			REMOVE_COMPAT_PID=1
		fi
	fi
	killproc syslog-ng
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/syslog-ng
	[ $RETVAL -eq 0 -a $REMOVE_COMPAT_PID -eq 1 ] && rm -f $SYSLOGNG_COMPAT_PID
	return $RETVAL
}

reload()
{
	verify_config
	echo -n $"Reloading syslog-ng: "
	killproc syslog-ng -HUP
	RETVAL=$?
	echo
	return $RETVAL
}

restart()
{
	stop
	start
}


case "$1" in
	start|stop|reload)
		$1
		;;
	restart|force_reload)
		restart
		;;
	status)
		status syslog-ng
		;;
	checkconfig|configtest|check|test)
		checkconfig
		;;
	condrestart|try-restart)
		[ -f /var/lock/subsys/syslog-ng ] && restart || :
		;;
	*)
		echo $"Usage: $0 {start|stop|restart|reload|condrestart|checkconfig}"
		exit 1
esac

exit $?

# vim: ft=sh:ts=4:ai:si: