xref: /freebsd-14.2/libexec/rc/rc.d/syslogd (revision d0b2dbfa)
1*0696600cSBjoern A. Zeeb#!/bin/sh
2*0696600cSBjoern A. Zeeb#
3*0696600cSBjoern A. Zeeb#
4*0696600cSBjoern A. Zeeb
5*0696600cSBjoern A. Zeeb# netif is required for lo0 because syslogd tries to open a local socket
6*0696600cSBjoern A. Zeeb#
7*0696600cSBjoern A. Zeeb# PROVIDE: syslogd
8*0696600cSBjoern A. Zeeb# REQUIRE: mountcritremote FILESYSTEMS newsyslog netif
9*0696600cSBjoern A. Zeeb# BEFORE:  SERVERS
10*0696600cSBjoern A. Zeeb
11*0696600cSBjoern A. Zeeb. /etc/rc.subr
12*0696600cSBjoern A. Zeeb
13*0696600cSBjoern A. Zeebname="syslogd"
14*0696600cSBjoern A. Zeebdesc="System log daemon"
15*0696600cSBjoern A. Zeebrcvar="syslogd_enable"
16*0696600cSBjoern A. Zeebpidfile="/var/run/syslog.pid"
17*0696600cSBjoern A. Zeebcommand="/usr/sbin/${name}"
18*0696600cSBjoern A. Zeebrequired_files="/etc/syslog.conf"
19*0696600cSBjoern A. Zeebstart_precmd="syslogd_precmd"
20*0696600cSBjoern A. Zeebextra_commands="reload"
21*0696600cSBjoern A. Zeeb
22*0696600cSBjoern A. Zeebsockfile="/var/run/syslogd.sockets"
23*0696600cSBjoern A. Zeebevalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\""
24*0696600cSBjoern A. Zeeb
25*0696600cSBjoern A. Zeebsyslogd_precmd()
26*0696600cSBjoern A. Zeeb{
27*0696600cSBjoern A. Zeeb	local _l _ldir
28*0696600cSBjoern A. Zeeb
29*0696600cSBjoern A. Zeeb	#	Transitional symlink for old binaries
30*0696600cSBjoern A. Zeeb	#
31*0696600cSBjoern A. Zeeb	if [ ! -L /dev/log ] && ! check_jail jailed; then
32*0696600cSBjoern A. Zeeb		ln -sf /var/run/log /dev/log
33*0696600cSBjoern A. Zeeb	fi
34*0696600cSBjoern A. Zeeb	rm -f /var/run/log
35*0696600cSBjoern A. Zeeb
36*0696600cSBjoern A. Zeeb	#	Create default list of syslog sockets to watch
37*0696600cSBjoern A. Zeeb	#
38*0696600cSBjoern A. Zeeb	( umask 022 ; > $sockfile )
39*0696600cSBjoern A. Zeeb
40*0696600cSBjoern A. Zeeb	#	If running named(8) or ntpd(8) chrooted, added appropriate
41*0696600cSBjoern A. Zeeb	#	syslog socket to list of sockets to watch.
42*0696600cSBjoern A. Zeeb	#
43*0696600cSBjoern A. Zeeb	for _l in $altlog_proglist; do
44*0696600cSBjoern A. Zeeb		eval _ldir=\$${_l}_chrootdir
45*0696600cSBjoern A. Zeeb		if checkyesno ${_l}_enable && [ -n "$_ldir" ]; then
46*0696600cSBjoern A. Zeeb			echo "${_ldir}/var/run/log" >> $sockfile
47*0696600cSBjoern A. Zeeb		fi
48*0696600cSBjoern A. Zeeb	done
49*0696600cSBjoern A. Zeeb
50*0696600cSBjoern A. Zeeb	#	If other sockets have been provided, change run_rc_command()'s
51*0696600cSBjoern A. Zeeb	#	internal copy of $syslogd_flags to force use of specific
52*0696600cSBjoern A. Zeeb	#	syslogd sockets.
53*0696600cSBjoern A. Zeeb	#
54*0696600cSBjoern A. Zeeb	if [ -s $sockfile ]; then
55*0696600cSBjoern A. Zeeb		echo "/var/run/log" >> $sockfile
56*0696600cSBjoern A. Zeeb		eval $evalargs
57*0696600cSBjoern A. Zeeb	fi
58*0696600cSBjoern A. Zeeb
59*0696600cSBjoern A. Zeeb	return 0
60*0696600cSBjoern A. Zeeb}
61*0696600cSBjoern A. Zeeb
62*0696600cSBjoern A. Zeebset_socketlist()
63*0696600cSBjoern A. Zeeb{
64*0696600cSBjoern A. Zeeb	local _s _socketargs
65*0696600cSBjoern A. Zeeb
66*0696600cSBjoern A. Zeeb	_socketargs=
67*0696600cSBjoern A. Zeeb	for _s in `cat $sockfile | tr '\n' ' '` ; do
68*0696600cSBjoern A. Zeeb		_socketargs="-l $_s $_socketargs"
69*0696600cSBjoern A. Zeeb	done
70*0696600cSBjoern A. Zeeb	echo $_socketargs
71*0696600cSBjoern A. Zeeb}
72*0696600cSBjoern A. Zeebload_rc_config $name
73*0696600cSBjoern A. Zeebrun_rc_command "$1"
74