1#!/bin/sh 2# 3# $NetBSD: syslogd,v 1.12 2002/03/22 04:34:00 thorpej Exp $ 4# $FreeBSD: src/etc/rc.d/syslogd,v 1.4 2002/10/01 13:29:44 ru Exp $ 5# $DragonFly: src/etc/rc.d/syslogd,v 1.6 2005/11/19 21:47:32 swildner Exp $ 6# 7 8# PROVIDE: syslogd 9# REQUIRE: mountcritremote sysdb 10# BEFORE: SERVERS 11 12. /etc/rc.subr 13 14name="syslogd" 15rcvar=`set_rcvar` 16command="/usr/sbin/${name}" 17required_files="/etc/syslog.conf" 18start_precmd="syslogd_precmd" 19extra_commands="reload" 20 21_sockfile="/var/run/syslogd.sockets" 22 23pidfile="/var/run/syslog.pid" 24evalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\"" 25altlog_proglist="named" 26 27syslogd_precmd() 28{ 29 # Transitional symlink for old binaries 30 # 31 if [ ! -L /dev/log ]; then 32 ln -sf /var/run/log /dev/log 33 fi 34 rm -f /var/run/log 35 36 # Create default list of syslog sockets to watch 37 # 38 ( umask 022 ; > $_sockfile ) 39 40 # If running named(8) chrooted, added appropriate 41 # syslog socket to list of sockets to watch. 42 # 43 for _l in $altlog_proglist; do 44 eval _ldir=\$${_l}_chrootdir 45 if checkyesno `set_rcvar $_l` && [ -n "$_ldir" ]; then 46 echo "${_ldir}/var/run/log" >> $_sockfile 47 fi 48 done 49 50 # If other sockets have been provided, change run_rc_command()'s 51 # internal copy of $syslogd_flags to force use of specific 52 # syslogd sockets. 53 # 54 if [ -s $_sockfile ]; then 55 echo "/var/run/log" >> $_sockfile 56 eval $evalargs 57 fi 58 59 return 0 60} 61 62set_socketlist() 63{ 64 _socketargs= 65 for _s in `cat $_sockfile | tr '\n' ' '` ; do 66 _socketargs="-l $_s $_socketargs" 67 done 68 echo $_socketargs 69} 70load_rc_config $name 71run_rc_command "$1" 72