syslogd revision 103019
155682Smarkm#!/bin/sh
255682Smarkm#
355682Smarkm# $NetBSD: syslogd,v 1.12 2002/03/22 04:34:00 thorpej Exp $
455682Smarkm# $FreeBSD: head/etc/rc.d/syslogd 103019 2002-09-06 16:18:05Z gordon $
555682Smarkm#
655682Smarkm
755682Smarkm# PROVIDE: syslogd
855682Smarkm# REQUIRE: mountcritremote sysdb wscons
955682Smarkm# BEFORE:  SERVERS
1055682Smarkm# KEYWORD: FreeBSD NetBSD
1155682Smarkm
1255682Smarkm. /etc/rc.subr
1355682Smarkm
1455682Smarkmname="syslogd"
1555682Smarkmrcvar=`set_rcvar`
1655682Smarkmcommand="/usr/sbin/${name}"
1755682Smarkmrequired_files="/etc/syslog.conf"
1855682Smarkmstart_precmd="syslogd_precmd"
1955682Smarkmextra_commands="reload"
2055682Smarkm
2155682Smarkm_sockfile="/var/run/syslogd.sockets"
2255682Smarkm
2355682Smarkmcase ${OSTYPE} in
2455682SmarkmFreeBSD)
2555682Smarkm	pidfile="/var/run/syslog.pid"
2655682Smarkm	evalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\""
2755682Smarkm	altlog_proglist="named"
2855682Smarkm	;;
2955682SmarkmNetBSD)
3055682Smarkm	pidfile="/var/run/${name}.pid"
3155682Smarkm	evalargs="rc_flags=\"-P \$_sockfile \$rc_flags\""
3255682Smarkm	altlog_proglist="named ntpd"
3355682Smarkm	;;
3455682Smarkmesac
3555682Smarkm
36178825Sdfrsyslogd_precmd()
3755682Smarkm{
3855682Smarkm	#	Transitional symlink for old binaries
3955682Smarkm	#
4055682Smarkm	if [ ! -h /dev/log ]; then
4155682Smarkm		ln -sf /var/run/log /dev/log
4255682Smarkm	fi
4355682Smarkm	rm -f /var/run/log
4455682Smarkm
4555682Smarkm	#	Create default list of syslog sockets to watch
4655682Smarkm	#
4755682Smarkm	( umask 022 ; > $_sockfile )
4855682Smarkm
4955682Smarkm	#	If running named(8) or ntpd(8) chrooted, added appropriate
5055682Smarkm	#	syslog socket to list of sockets to watch.
5155682Smarkm	#
5255682Smarkm	for _l in $altlog_proglist; do
5355682Smarkm		eval _ldir=\$${_l}_chrootdir
5455682Smarkm		if checkyesno `set_rcvar $_l` && [ -n "$_ldir" ]; then
5555682Smarkm			echo "${_ldir}/var/run/log" >> $_sockfile
5655682Smarkm		fi
5755682Smarkm	done
5855682Smarkm
5955682Smarkm	#	If other sockets have been provided, change run_rc_command()'s
6078527Sassar	#	internal copy of $syslogd_flags to force use of specific
6155682Smarkm	#	syslogd sockets.
6278527Sassar	#
6355682Smarkm	if [ -s $_sockfile ]; then
6455682Smarkm		echo "/var/run/log" >> $_sockfile
6555682Smarkm		eval $evalargs
6655682Smarkm	fi
6755682Smarkm
6855682Smarkm	return 0
6955682Smarkm}
7055682Smarkm
7155682Smarkmset_socketlist()
7255682Smarkm{
7355682Smarkm	_socketargs=
7455682Smarkm	for _s in `cat $_sockfile | tr '\n' ' '` ; do
7555682Smarkm		_socketargs="-l $_s $_socketargs"
7655682Smarkm	done
7755682Smarkm	echo $_socketargs
7855682Smarkm}
7955682Smarkmload_rc_config $name
8055682Smarkmrun_rc_command "$1"
8155682Smarkm