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.1 2003/07/24 06:35:37 dillon Exp $ 6# 7 8# PROVIDE: syslogd 9# REQUIRE: mountcritremote sysdb wscons 10# BEFORE: SERVERS 11# KEYWORD: DragonFly FreeBSD NetBSD 12 13. /etc/rc.subr 14 15name="syslogd" 16rcvar=`set_rcvar` 17command="/usr/sbin/${name}" 18required_files="/etc/syslog.conf" 19start_precmd="syslogd_precmd" 20extra_commands="reload" 21 22_sockfile="/var/run/syslogd.sockets" 23 24case ${OSTYPE} in 25DragonFly) 26 pidfile="/var/run/syslog.pid" 27 evalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\"" 28 altlog_proglist="named" 29 ;; 30 31FreeBSD) 32 pidfile="/var/run/syslog.pid" 33 evalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\"" 34 altlog_proglist="named" 35 ;; 36NetBSD) 37 pidfile="/var/run/${name}.pid" 38 evalargs="rc_flags=\"-P \$_sockfile \$rc_flags\"" 39 altlog_proglist="named ntpd" 40 ;; 41esac 42 43syslogd_precmd() 44{ 45 # Transitional symlink for old binaries 46 # 47 if [ ! -L /dev/log ]; then 48 ln -sf /var/run/log /dev/log 49 fi 50 rm -f /var/run/log 51 52 # Create default list of syslog sockets to watch 53 # 54 ( umask 022 ; > $_sockfile ) 55 56 # If running named(8) or ntpd(8) chrooted, added appropriate 57 # syslog socket to list of sockets to watch. 58 # 59 for _l in $altlog_proglist; do 60 eval _ldir=\$${_l}_chrootdir 61 if checkyesno `set_rcvar $_l` && [ -n "$_ldir" ]; then 62 echo "${_ldir}/var/run/log" >> $_sockfile 63 fi 64 done 65 66 # If other sockets have been provided, change run_rc_command()'s 67 # internal copy of $syslogd_flags to force use of specific 68 # syslogd sockets. 69 # 70 if [ -s $_sockfile ]; then 71 echo "/var/run/log" >> $_sockfile 72 eval $evalargs 73 fi 74 75 return 0 76} 77 78set_socketlist() 79{ 80 _socketargs= 81 for _s in `cat $_sockfile | tr '\n' ' '` ; do 82 _socketargs="-l $_s $_socketargs" 83 done 84 echo $_socketargs 85} 86load_rc_config $name 87run_rc_command "$1" 88