xref: /openbsd/etc/rc (revision 33a0f254)
1*33a0f254Sitojun#	$OpenBSD: rc,v 1.127 2000/01/02 14:25:07 itojun Exp $
2df930be7Sderaadt
3df930be7Sderaadt# System startup script run by init on autoboot
4df930be7Sderaadt# or after single-user.
5df930be7Sderaadt# Output and error are redirected to console by init,
6df930be7Sderaadt# and the console is the controlling terminal.
7df930be7Sderaadt
8df930be7Sderaadtstty status '^T'
9df930be7Sderaadt
10df930be7Sderaadt# Set shell to ignore SIGINT (2), but not children;
11df930be7Sderaadt# shell catches SIGQUIT (3) and returns to single user after fsck.
12df930be7Sderaadttrap : 2
13df930be7Sderaadttrap : 3	# shouldn't be needed
14df930be7Sderaadt
15df930be7SderaadtHOME=/; export HOME
16df930be7SderaadtPATH=/sbin:/bin:/usr/sbin:/usr/bin
17df930be7Sderaadtexport PATH
18df930be7Sderaadt
1975a54d2eSderaadtif [ $1x = shutdownx ]; then
2075a54d2eSderaadt	dd if=/dev/urandom of=/var/db/host.random bs=1024 count=64 >/dev/null 2>&1
2175a54d2eSderaadt	chmod 600 /var/db/host.random >/dev/null 2>&1
2275a54d2eSderaadt	if [ $? -eq 0 -a -f /etc/rc.shutdown ]; then
2375a54d2eSderaadt		echo /etc/rc.shutdown in progress...
2475a54d2eSderaadt		. /etc/rc.shutdown
2575a54d2eSderaadt		echo /etc/rc.shutdown complete.
2675a54d2eSderaadt		if [ "X${powerdown}" = X"YES" ]; then
2775a54d2eSderaadt			exit 2
2875a54d2eSderaadt		fi
2975a54d2eSderaadt	else
3075a54d2eSderaadt		echo single user: not running /etc/rc.shutdown
3175a54d2eSderaadt	fi
3275a54d2eSderaadt	exit 0
3375a54d2eSderaadtfi
3475a54d2eSderaadt
35df930be7Sderaadt# Configure ccd devices.
368b7444a6Sderaadtif [ -f /etc/ccd.conf ]; then
37df930be7Sderaadt	ccdconfig -C
38df930be7Sderaadtfi
39df930be7Sderaadt
40c5858a2aSjakob# Configure raid devices.
41c5858a2aSjakobfor dev in 0 1 2 3; do
42c5858a2aSjakob	if [ -f /etc/raid$dev.conf ]; then
43c5858a2aSjakob		raidctl -c /etc/raid$dev.conf raid$dev
44c5858a2aSjakob	fi
45c5858a2aSjakobdone
46c5858a2aSjakob
478b7444a6Sderaadtif [ -e /fastboot ]; then
48df930be7Sderaadt	echo "Fast boot: skipping disk checks."
498b7444a6Sderaadtelif [ $1x = autobootx ]; then
50df930be7Sderaadt	echo "Automatic boot in progress: starting file system checks."
51b39bbe87Smillert	fsck -p
52df930be7Sderaadt	case $? in
53df930be7Sderaadt	0)
54df930be7Sderaadt		;;
55df930be7Sderaadt	2)
56df930be7Sderaadt		exit 1
57df930be7Sderaadt		;;
58df930be7Sderaadt	4)
59df930be7Sderaadt		echo "Rebooting..."
60df930be7Sderaadt		reboot
61df930be7Sderaadt		echo "Reboot failed; help!"
62df930be7Sderaadt		exit 1
63df930be7Sderaadt		;;
64df930be7Sderaadt	8)
65df930be7Sderaadt		echo "Automatic file system check failed; help!"
66df930be7Sderaadt		exit 1
67df930be7Sderaadt		;;
68df930be7Sderaadt	12)
69df930be7Sderaadt		echo "Boot interrupted."
70df930be7Sderaadt		exit 1
71df930be7Sderaadt		;;
72df930be7Sderaadt	130)
73df930be7Sderaadt		# interrupt before catcher installed
74df930be7Sderaadt		exit 1
75df930be7Sderaadt		;;
76df930be7Sderaadt	*)
77df930be7Sderaadt		echo "Unknown error; help!"
78df930be7Sderaadt		exit 1
79df930be7Sderaadt		;;
80df930be7Sderaadt	esac
81df930be7Sderaadtfi
82df930be7Sderaadt
83df930be7Sderaadttrap "echo 'Boot interrupted.'; exit 1" 3
84df930be7Sderaadt
85df930be7Sderaadtswapon -a
86df930be7Sderaadt
87df930be7Sderaadtumount -a >/dev/null 2>&1
88df930be7Sderaadtmount -a -t nonfs
894515901dSniklasmount -uw /		# root on nfs requires this, others aren't hurt
90df930be7Sderaadtrm -f /fastboot		# XXX (root now writeable)
91df930be7Sderaadt
92df930be7Sderaadt# set flags on ttys.  (do early, in case they use tty for SLIP in netstart)
93df930be7Sderaadtecho 'setting tty flags'
94df930be7Sderaadtttyflags -a
95df930be7Sderaadt
9667af4c17Sprovos# if there's no /var/db/host.random, make one through /dev/urandom
9767af4c17Sprovosif [ ! -f /var/db/host.random ]; then
9867af4c17Sprovos	dd if=/dev/urandom of=/var/db/host.random bs=1024 count=64 \
9967af4c17Sprovos		>/dev/null 2>&1
100011f6b2eSderaadt	chmod 600 /var/db/host.random >/dev/null 2>&1
10167af4c17Sprovoselse
10267af4c17Sprovos	dd if=/var/db/host.random of=/dev/urandom bs=1024 count=64 \
10367af4c17Sprovos	    > /dev/null 2>&1
1042d242bf4Sderaadt	dd if=/var/db/host.random of=/dev/arandom bs=1024 count=64 \
10530879892Sderaadt	    > /dev/null 2>&1
10642df6c35Sangelosfi
10742df6c35Sangelos
108f753b29fSderaadtif [ -f /etc/sysctl.conf ]; then
109f753b29fSderaadt(
110f753b29fSderaadt	# delete comments and blank lines
111f753b29fSderaadt	set -- `sed -e 's/#.*$//' /etc/sysctl.conf | grep -v '^$'`
112f753b29fSderaadt	while [ $# -ge 1 ] ; do
113f753b29fSderaadt		sysctl -w $1
114f753b29fSderaadt		shift 1
115f753b29fSderaadt	done
116f753b29fSderaadt)
117f753b29fSderaadtfi
118f753b29fSderaadt
119df930be7Sderaadt# set hostname, turn on network
120df930be7Sderaadtecho 'starting network'
121df930be7Sderaadt. /etc/netstart
122df930be7Sderaadt
123df930be7Sderaadtmount /usr >/dev/null 2>&1
124df930be7Sderaadtmount /var >/dev/null 2>&1
125df930be7Sderaadt
126f0550eb3Sderaadt# clean up left-over files
127f0550eb3Sderaadtrm -f /etc/nologin
128f0550eb3Sderaadtrm -f /var/spool/lock/LCK.*
129f0550eb3Sderaadtrm -f /var/spool/uucp/STST/*
130f0550eb3Sderaadt(cd /var/run && { rm -rf -- *; install -c -m 664 -g utmp /dev/null utmp; })
131f0550eb3Sderaadt
1326c0a0b4aSalex# save a copy of the boot messages
1336c0a0b4aSalexdmesg >/var/run/dmesg.boot
1346c0a0b4aSalex
1353ca632e7Sderaadtecho 'starting system logger'
1363ca632e7Sderaadtrm -f /dev/log
137de324a5dSmillertif [ "X${named_flags}" != X"NO" -a "X${named_chroot}" != "X" ]; then
138b025dbf1Smillert	rm -f ${named_chroot}/dev/log
139b025dbf1Smillert	syslogd_flags="${syslogd_flags} -a ${named_chroot}/dev/log"
140b025dbf1Smillertfi
1411dabce80Smarcsyslogd ${syslogd_flags}
1423ca632e7Sderaadt
143e2f2cec7Stodd# /etc/ifaliases, if it exists, contains the names of additional IP
144e2f2cec7Stodd# addresses for each interface. It is formatted as a series of lines
145e2f2cec7Stodd# that contain
146e2f2cec7Stodd#	interface address netmask
147e2f2cec7Stoddif [ -f /etc/ifaliases ]; then
148e2f2cec7Stodd(
149e2f2cec7Stodd	# delete comments and blank lines
150e2f2cec7Stodd	set -- `sed -e 's/#.*$//' /etc/ifaliases | grep -v '^$'`
151e2f2cec7Stodd	while [ $# -ge 3 ] ; do
152e2f2cec7Stodd		ifconfig $1 inet alias $2 netmask $3
153e2f2cec7Stodd		route -n add -host $2 localhost
154e2f2cec7Stodd		shift 3
155e2f2cec7Stodd	done
156e2f2cec7Stodd)
157e2f2cec7Stoddfi
158e2f2cec7Stodd
159b025dbf1Smillert# $named_flags, $named_user, and $named_chroot are imported from /etc/rc.conf;
160759e03b2Sderaadt# if $named_flags != NO, named is run.
161759e03b2Sderaadtif [ "X${named_flags}" != X"NO" ]; then
162b025dbf1Smillert	if [ "X${named_user}" != "X" -a "X${named_user}" != X"root" ]; then
163b025dbf1Smillert		named_flags="-u ${named_user} ${named_flags}"
164b025dbf1Smillert	fi
1655bbdedf9Smillert	if [ "X${named_chroot}" != "X" ]; then
1661b0bb4feSmillert		if [ ! -c "${named_chroot}/dev/null" ]; then
1671b0bb4feSmillert			( cd /dev ; pax -rw -pe null ${named_chroot}/dev )
1681b0bb4feSmillert		fi
169d6f17fddSmillert		if [ -f /etc/localtime -a -d "${named_chroot}/etc" ]; then
170d6f17fddSmillert			cmp -s /etc/localtime "${named_chroot}/etc/localtime" \
171d6f17fddSmillert			|| cp -p /etc/localtime "${named_chroot}/etc/localtime"
172d6f17fddSmillert		fi
173b025dbf1Smillert		named_flags="-t ${named_chroot} ${named_flags}"
174b025dbf1Smillert	fi
1753ca632e7Sderaadt	echo 'starting named';		named $named_flags
176759e03b2Sderaadtfi
177759e03b2Sderaadt
1789a844b63Sdmif [ X"${ipfilter}" = X"YES" -a X"${ipmon_flags}" != X"NO" ]; then
1797132670aSmickey	echo 'starting ipmon';		ipmon ${ipmon_flags}
1809a844b63Sdmfi
1819a844b63Sdm
182edae963cSderaadt# $photurisd_flags is imported from /etc/rc.conf;
1833edbf32cSkstailey# If $photurisd_flags == NO or /etc/photuris/photuris.conf doesn't exist, then
184a5aa1706Sprovos# photurisd isn't run.
1853edbf32cSkstaileyif [ "X${photurisd_flags}" != X"NO" -a -e /etc/photuris/photuris.conf ]; then
186a5aa1706Sprovos	echo 'starting photurisd';	photurisd ${photurisd_flags}
187a5aa1706Sprovosfi
188a5aa1706Sprovos
189096ed560Sderaadt# $isakmpd_flags is imported from /etc/rc.conf;
1904464acccSderaadt# If $isakmpd_flags == NO or /etc/isakmpd/isakmpd.conf doesn't exist, then
191096ed560Sderaadt# isakmpd isn't run.
1924464acccSderaadtif [ "X${isakmpd_flags}" != X"NO" -a -e /etc/isakmpd/isakmpd.conf ]; then
193096ed560Sderaadt	echo 'starting isakmpd';	isakmpd ${isakmpd_flags}
194096ed560Sderaadtfi
195096ed560Sderaadt
196df930be7Sderaadtecho -n 'starting rpc daemons:'
1978e74b1f0Smillert
198edae963cSderaadt# $portmap is imported from /etc/rc.conf;
1998e74b1f0Smillert# if $portmap == YES, the portmapper is started.
2008e74b1f0Smillertif [ X"${portmap}" = X"YES" ]; then
201df930be7Sderaadt	echo -n ' portmap';		portmap
202423a3640Sderaadtfi
203df930be7Sderaadt
2049704da5bSderaadtif [ -d /var/yp/binding ]; then
2052d5ee5bcSderaadt	if [ -d /var/yp/`domainname` ]; then
206b25099beSderaadt		# yp server capabilities needed...
207d6518a3fSniklas		echo -n ' ypserv';		ypserv ${ypserv_flags}
208d52cd61fSderaadt		#echo -n ' ypxfrd';		ypxfrd
2097f2d1b00Sderaadt	fi
210b25099beSderaadt
2117f2d1b00Sderaadt	echo -n ' ypbind';		ypbind
2127f2d1b00Sderaadt
2137f2d1b00Sderaadt	if [ -d /var/yp/`domainname` ]; then
214b25099beSderaadt		# if we are the master server, run rpc.yppasswdd
215b25099beSderaadt		_host1=`ypwhich -m passwd 2> /dev/null`
216b25099beSderaadt		_host2=`hostname`
217fd917f6eSderaadt		if [ `grep '^lookup' /etc/resolv.conf | grep yp | wc -c` -ne 0 ]; then
218b25099beSderaadt			_host1=`ypmatch $_host1 hosts | cut -d'	' -f2`
219b25099beSderaadt			_host2=`ypmatch $_host2 hosts | cut -d'	' -f2 | head -1`
220b25099beSderaadt		else
221b25099beSderaadt			_host1=`nslookup $_host1 | grep '^Name: ' | \
222b25099beSderaadt			    sed -e 's/^Name:    //'`
223b25099beSderaadt			_host2=`nslookup $_host2 | grep '^Name: ' | \
224b25099beSderaadt			    sed -e 's/^Name:    //'`
225b25099beSderaadt		fi
226234efc0eSderaadt		if [ "$_host2" = "$_host1" ]; then
22713f82310Sniklas			echo -n ' rpc.yppasswdd'
22813f82310Sniklas			rpc.yppasswdd ${yppasswdd_flags}
2292d5ee5bcSderaadt		fi
2302d5ee5bcSderaadt	fi
231df930be7Sderaadtfi
232df930be7Sderaadt
233edae963cSderaadt# $nfs_server is imported from /etc/rc.conf;
234df930be7Sderaadt# if $nfs_server == YES, the machine is setup for being an nfs server
235a975dbe5Smillertif [ X${nfs_server} = X"YES" -a -s /etc/exports -a \
2362a7d8a9aSderaadt    `cat /etc/exports | sed -e '/^#/d' | wc -l` -ne 0 ]; then
237df930be7Sderaadt	rm -f /var/db/mountdtab
238df930be7Sderaadt	echo -n > /var/db/mountdtab
239df930be7Sderaadt	echo -n ' mountd';		mountd
240e6d41a0aSniklas	echo -n ' nfsd';		nfsd ${nfsd_flags}
241e6d41a0aSniklas	if [ X${lockd} = X"YES" ]; then
242e6d41a0aSniklas		echo -n ' rpc.lockd';	rpc.lockd
243e6d41a0aSniklas	fi
244df930be7Sderaadtfi
245df930be7Sderaadt
246edae963cSderaadt# $nfs_client is imported from /etc/rc.conf;
247df930be7Sderaadt# if $nfs_client == YES, the machine is setup for being an nfs client
248df930be7Sderaadtif [ X${nfs_client} = X"YES" ]; then
24995dbe375Sdownsj	echo -n ' nfsiod';		nfsiod ${nfsiod_flags}
250df930be7Sderaadtfi
251df930be7Sderaadt
252a975dbe5Smillertif [ X${amd} = X"YES" -a -d ${amd_dir} -a -e ${amd_master} ]; then
253df930be7Sderaadt	echo -n ' amd'
254d988480bSderaadt	(cd /etc/amd; amd -l syslog -x error,noinfo,nostats -p \
255d988480bSderaadt	    -a ${amd_dir} `cat ${amd_master}` > /var/run/amd.pid )
256df930be7Sderaadtfi
257df930be7Sderaadt
258edae963cSderaadt# $timed_flags is imported from /etc/rc.conf;
259df930be7Sderaadt# if $timed_flags == NO, timed isn't run.
260df930be7Sderaadtif [ "X${timed_flags}" != X"NO" ]; then
2613ca632e7Sderaadt	echo -n ' timed'; timed $timed_flags
262df930be7Sderaadtfi
263df930be7Sderaadtecho '.'
264df930be7Sderaadt
2653ca632e7Sderaadtmount -a -t nfs
2663ca632e7Sderaadt
267df930be7Sderaadt# /var/crash should be a directory or a symbolic link
268df930be7Sderaadt# to the crash directory if core dumps are to be saved.
269df930be7Sderaadtif [ -d /var/crash ]; then
270df930be7Sderaadt	savecore /var/crash
271df930be7Sderaadtfi
272df930be7Sderaadt
2738b757a89Sartif [ "X${afs}" = X"YES" -a -c ${afs_device} -a -d ${afs_mount_point} ]; then
2748b757a89Sart	echo -n 'mounting afs:'
275aedc5557Sart	mount -t xfs ${afs_device} ${afs_mount_point}
2768b757a89Sart	/usr/libexec/afsd ${afsd_flags} -d ${afs_device}
2778b757a89Sart	echo ' done.'
2788b757a89Sartfi
2798b757a89Sart
28036a647e7Sdownsjif [ "X${check_quotas}" = X"YES" ]; then
281df930be7Sderaadt	echo -n 'checking quotas:'
282df930be7Sderaadt	quotacheck -a
283df930be7Sderaadt	echo ' done.'
284df930be7Sderaadt	quotaon -a
28536a647e7Sdownsjfi
286df930be7Sderaadt
287df930be7Sderaadt# build ps databases
288fb69824dSderaadtecho -n 'building ps databases:'
289fb69824dSderaadtecho -n " kvm"
290004fa836Smillertkvm_mkdb
291fb69824dSderaadtecho -n " dev"
292df930be7Sderaadtdev_mkdb
293fb69824dSderaadtecho "."
294df930be7Sderaadt
295e860cdbaSderaadtchmod 666 /dev/tty[pqrstuvwxyzPQRST]*
296e860cdbaSderaadtchown root.wheel /dev/tty[pqrstuvwxyzPQRST]*
297df930be7Sderaadt
298df930be7Sderaadt# check the password temp/lock file
2998b7444a6Sderaadtif [ -f /etc/ptmp ]; then
300df930be7Sderaadt	logger -s -p auth.err \
301df930be7Sderaadt	'password file may be incorrect -- /etc/ptmp exists'
302df930be7Sderaadtfi
303df930be7Sderaadt
304e65724e6Smillertecho clearing /tmp
305e65724e6Smillert
306e65724e6Smillert# prune quickly with one rm, then use find to clean up /tmp/[lq]*
307e65724e6Smillert# (not needed with mfs /tmp, but doesn't hurt there...)
308e65724e6Smillert(cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
309e65724e6Smillert    find . ! -name . ! -name lost+found ! -name quota.user \
3108b0a8653Smillert	! -name quota.group -execdir rm -rf -- {} \; -type d -prune)
311e65724e6Smillert
3122f33850bSderaadt[ -f /etc/rc.securelevel ] && . /etc/rc.securelevel
31341406ee4Sderaadtif [ X${securelevel} != X"" ]; then
314e31a5b5aSmillert	echo -n 'setting kernel security level: '
31541406ee4Sderaadt	sysctl -w kern.securelevel=${securelevel}
31641406ee4Sderaadtfi
31741406ee4Sderaadt
318dc279d04Sderaadt# patch /etc/motd
319dc279d04Sderaadtif [ ! -f /etc/motd ]; then
320dc279d04Sderaadt	install -c -o root -g wheel -m 664 /dev/null /etc/motd
321dc279d04Sderaadtfi
322d243dabcSmillertT=`mktemp /tmp/_motd.XXXXXXXXXX`
323499eb670Smillertif [ $? -eq 0 ]; then
324dc279d04Sderaadt	sysctl -n kern.version | sed 1q > $T
325dc279d04Sderaadt	echo "" >> $T
326dc279d04Sderaadt	sed '1,/^$/d' < /etc/motd >> $T
327dc279d04Sderaadt	cmp -s $T /etc/motd || cp $T /etc/motd
328dc279d04Sderaadt	rm -f $T
3295b45527eSmillertfi
330dc279d04Sderaadt
331311b7760Smillertif [ -x /usr/libexec/vi.recover ]; then
332311b7760Smillert	echo 'preserving editor files';	/usr/libexec/vi.recover
333df930be7Sderaadtfi
334df930be7Sderaadt
335df930be7Sderaadtif [ -f /var/account/acct ]; then
336df930be7Sderaadt	echo 'turning on accounting';	accton /var/account/acct
337df930be7Sderaadtfi
338df930be7Sderaadt
3397e42516dSderaadtif [ -f /sbin/ldconfig ]; then
3407e42516dSderaadt	echo 'creating runtime link editor directory cache.'
3417e42516dSderaadt	if [ -d /usr/local/lib ]; then
3427e42516dSderaadt		shlib_dirs="$shlib_dirs /usr/local/lib"
3437e42516dSderaadt	fi
3447e42516dSderaadt	if [ -d /usr/X11R6/lib ]; then
3457e42516dSderaadt		shlib_dirs="$shlib_dirs /usr/X11R6/lib"
3467e42516dSderaadt	fi
3477e42516dSderaadt	ldconfig $shlib_dirs
3487e42516dSderaadtfi
3497e42516dSderaadt
350a8fc3e40Sderaadtif [ ! -f /etc/ssh_host_key -a -x /usr/bin/ssh-keygen ]; then
3516d6e0cf6Sderaadt	umask 022
3526d6e0cf6Sderaadt	echo -n "ssh-keygen: generating new host key... "
3536d6e0cf6Sderaadt	if /usr/bin/ssh-keygen -q -b 1024 -f /etc/ssh_host_key -N ''; then
3546d6e0cf6Sderaadt		echo done.
3556d6e0cf6Sderaadt	else
3566d6e0cf6Sderaadt		echo failed.
3576d6e0cf6Sderaadt	fi
3586d6e0cf6Sderaadtfi
3596d6e0cf6Sderaadt
360df930be7Sderaadtecho -n starting network daemons:
361df930be7Sderaadt
362edae963cSderaadt# $gated and $routed_flags are imported from /etc/rc.conf.
363df930be7Sderaadt# If $gated == YES, gated is used; otherwise routed.
364df930be7Sderaadt# If $routed_flags == NO, routed isn't run.
365a975dbe5Smillertif [ X${gated} = X"YES" -a -e /etc/gated.conf ]; then
366df930be7Sderaadt	echo -n ' gated';		gated $gated_flags
367df930be7Sderaadtelif [ "X${routed_flags}" != X"NO" ]; then
368df930be7Sderaadt	echo -n ' routed';		routed $routed_flags
369df930be7Sderaadtfi
370df930be7Sderaadt
371edae963cSderaadt# $mrouted_flags is imported from /etc/rc.conf;
37269b30726Sderaadt# If $mrouted_flags == NO, then mrouted isn't run.
37369b30726Sderaadtif [ "X${mrouted_flags}" != X"NO" ]; then
37469b30726Sderaadt	echo -n ' mrouted';		mrouted $mrouted_flags
37569b30726Sderaadtfi
37669b30726Sderaadt
37730a2245dSform# $dhcpd_flags is imported from /etc/rc.conf
37830a2245dSform# If $dhcpd_flags == NO or /etc/dhcpd.conf doesn't exist, then dhcpd isn't run.
37930a2245dSformif [ "X${dhcpd_flags}" != X"NO" -a -f /etc/dhcpd.conf ]; then
38030a2245dSform	touch /var/db/dhcpd.leases
38130a2245dSform	if [ -f /etc/dhcpd.interfaces ]; then
38230a2245dSform		dhcpd_ifs=`cat /etc/dhcpd.interfaces | awk -F\# '{ print $1; }'`
38330a2245dSform	fi
38430a2245dSform	echo -n ' dhcpd';	/usr/sbin/dhcpd ${dhcpd_flags} ${dhcpd_ifs}
38530a2245dSformfi
38630a2245dSform
387*33a0f254Sitojunif ifconfig lo0 inet6 >/dev/null 2>&1; then
388*33a0f254Sitojun	fw=`sysctl -n net.inet6.ip6.forwarding`
389*33a0f254Sitojun	if [ "X${fw}" == X"0" ]; then
390*33a0f254Sitojun		# $rtsold_flags is imported from /etc/rc.conf;
391*33a0f254Sitojun		# If $rtsold_flags == NO, then rtsold isn't run.
392*33a0f254Sitojun		if [ "X${rtsold_flags}" != X"NO" ]; then
393*33a0f254Sitojun			echo -n ' rtsold'
394*33a0f254Sitojun			/usr/sbin/rtsold ${rtsold_flags}
395*33a0f254Sitojun		fi
396*33a0f254Sitojun	else
397*33a0f254Sitojun		# $route6d_flags is imported from /etc/rc.conf;
398*33a0f254Sitojun		# If $route6d_flags == NO, then route6d isn't run.
399*33a0f254Sitojun		if [ "X${route6d_flags}" != X"NO" ]; then
400*33a0f254Sitojun			echo -n ' route6d'
401*33a0f254Sitojun			/usr/sbin/route6d ${route6d_flags}
402*33a0f254Sitojun		fi
403*33a0f254Sitojun		# $rtadvd_flags is imported from /etc/rc.conf;
404*33a0f254Sitojun		# If $rtadvd_flags == NO or /etc/rtadvd.conf doesn't exist,
405*33a0f254Sitojun		# then rtadvd isn't run.
406*33a0f254Sitojun		if [ "X${rtadvd_flags}" != X"NO" -a -f /etc/rtadvd.conf ]; then
407*33a0f254Sitojun			echo -n ' rtadvd'
408*33a0f254Sitojun			/usr/sbin/rtadvd ${rtadvd_flags}
409*33a0f254Sitojun		fi
410*33a0f254Sitojun	fi
411*33a0f254Sitojunfi
412*33a0f254Sitojun
413edae963cSderaadt# $rwhod is imported from /etc/rc.conf;
414df930be7Sderaadt# if $rwhod == YES, rwhod is run.
415df930be7Sderaadtif [ X${rwhod} = X"YES" ]; then
416df930be7Sderaadt	echo -n ' rwhod';		rwhod
417df930be7Sderaadtfi
418df930be7Sderaadt
419423a3640Sderaadt
420423a3640Sderaadtif [ X${lpd} = X"YES" ]; then
421df930be7Sderaadt	echo -n ' printer';		lpd
422423a3640Sderaadtfi
423df930be7Sderaadt
424edae963cSderaadt# $sendmail_flags is imported from /etc/rc.conf;
425df930be7Sderaadt# If $sendmail_flags == NO or /etc/sendmail.cf doesn't exist, then
4264844ae79Sderaadt# sendmail isn't run.  We call sendmail with a full path so that
4274844ae79Sderaadt# SIGHUP works.
428a975dbe5Smillertif [ "X${sendmail_flags}" != X"NO" -a -s /etc/sendmail.cf ]; then
4294844ae79Sderaadt	echo -n ' sendmail';		/usr/sbin/sendmail ${sendmail_flags}
430df930be7Sderaadtfi
431df930be7Sderaadt
43252e6779cSderaadtif [ "X${httpd_flags}" != X"NO"  ]; then
43352e6779cSderaadt	echo -n ' httpd';		/usr/sbin/httpd ${httpd_flags}
43452e6779cSderaadtfi
43552e6779cSderaadt
436b6330bccSdownsjif [ "X${ftpd_flags}" != X"NO" ]; then
437b6330bccSdownsj	echo -n ' ftpd';		/usr/libexec/ftpd ${ftpd_flags}
438b6330bccSdownsjfi
439b6330bccSdownsj
4404265ef72Sfgschif [ "X${identd_flags}" != X"NO" ]; then
4414265ef72Sfgsch	echo -n ' identd';		/usr/libexec/identd ${identd_flags}
4424265ef72Sfgschfi
4434265ef72Sfgsch
444f9eade57Sbeck# $smtpfwdd_flags is imported from /etc/rc.conf;
445f9eade57Sbeck# If $smtpfwdd_flags == NO, smtpfwdd isn't run.
446f9eade57Sbeckif [ "X${smtpfwdd_flags}" != X"NO" ]; then
447f9eade57Sbeck	echo -n ' smtpfwdd';	/usr/libexec/smtpfwdd ${smtpfwdd_flags}
448f9eade57Sbeckfi
449f9eade57Sbeck
450f9eade57Sbeck
451423a3640Sderaadtif [ X${inetd} = X"YES" ]; then
452df930be7Sderaadt	echo -n ' inetd';		inetd
453423a3640Sderaadtfi
454df930be7Sderaadt
455edae963cSderaadt# $rarpd_flags is imported from /etc/rc.conf;
456df930be7Sderaadt# If $rarpd_flags == NO or /etc/ethers doesn't exist, then
457df930be7Sderaadt# rarpd isn't run.
458a975dbe5Smillertif [ "X${rarpd_flags}" != X"NO" -a -s /etc/ethers ]; then
459df930be7Sderaadt	echo -n ' rarpd';		rarpd ${rarpd_flags}
460df930be7Sderaadtfi
461df930be7Sderaadt
462edae963cSderaadt# $bootparamd_flags is imported from /etc/rc.conf;
463df930be7Sderaadt# If $bootparamd_flags == NO or /etc/bootparams doesn't exist, then
464df930be7Sderaadt# bootparamd isn't run.
465a975dbe5Smillertif [ "X${bootparamd_flags}" != X"NO" -a -s /etc/bootparams ]; then
466df930be7Sderaadt	echo -n ' rpc.bootparamd';	rpc.bootparamd ${bootparamd_flags}
467df930be7Sderaadtfi
468df930be7Sderaadt
469edae963cSderaadt# $rbootd_flags is imported from /etc/rc.conf;
470df930be7Sderaadt# If $rbootd_flags == NO or /etc/rbootd.conf doesn't exist, then
471df930be7Sderaadt# rbootd isn't run.
472a975dbe5Smillertif [ "X${rbootd_flags}" != X"NO" -a -s /etc/rbootd.conf ]; then
473df930be7Sderaadt	echo -n ' rbootd';		rbootd ${rbootd_flags}
474df930be7Sderaadtfi
475df930be7Sderaadt
476df4692e3Smaja# $mopd_flags is imported from /etc/rc.conf;
477df4692e3Smaja# If $mopd_flags == NO or /tftpboot/mop doesn't exist, then
478df4692e3Smaja# mopd isn't run.
479df4692e3Smajaif [ "X${mopd_flags}" != X"NO" -a -d /tftpboot/mop ]; then
480df4692e3Smaja	echo -n ' mopd';		mopd ${mopd_flags}
481df4692e3Smajafi
482df4692e3Smaja
483350b1732Sderaadtif [ X"${sshd}" == X"YES" ]; then
484c50b2023Sderaadt	if test -x /usr/sbin/sshd && /usr/sbin/sshd -Q ; then
4858b6b3eb8Sderaadt		echo -n ' sshd';
4867e42516dSderaadt		#echo -n ' sshd(2022)';	/usr/sbin/sshd -p 2022
487350b1732Sderaadt	elif [ -x /usr/local/sbin/sshd ]; then
4888b6b3eb8Sderaadt		/usr/local/sbin/sshd
4898b6b3eb8Sderaadt		echo -n ' sshd';
490350b1732Sderaadt		#echo -n ' sshd(2022)';	/usr/local/sbin/sshd -p 2022
4918b6b3eb8Sderaadt	fi
4927e42516dSderaadtfi
4937e42516dSderaadt
494df930be7Sderaadtecho '.'
495df930be7Sderaadt
496e1ebb78aSderaadtif [ -f /sbin/kbd -a -f /etc/kbdtype ]; then
497e1ebb78aSderaadt	kbd `cat /etc/kbdtype`
498e1ebb78aSderaadtfi
499e1ebb78aSderaadt
5002d54352cSart# Kerberos runs ONLY on the Kerberos servers
5012d54352cSart# Kadmin is runs only on the main server
5028b7444a6Sderaadtif [ X${kerberos_server} = X"YES" ]; then
503a5c30118Stholo	echo 'kerberos server'
50459317418Sart	/usr/libexec/kerberos >> /var/log/kerberos.log &
50559317418Sart	/usr/libexec/kadmind -n >> /var/log/kadmind.log &
5068b7444a6Sderaadtfi
5078b7444a6Sderaadt
5082d54352cSart# Kpropd runs only on Kerberos slave servers
5092d54352cSartif [ X${kerberos_slave} = X"YES" ]; then
5102d54352cSart	echo 'kerberos slave server'
5112d54352cSart	/usr/libexec/kerberos -s >> /var/log/kerberos.log &
5122d54352cSart	/usr/libexec/kpropd -i &
5132d54352cSartfi
5142d54352cSart
5152f33850bSderaadt[ -f /etc/rc.local ] && . /etc/rc.local
5168b7444a6Sderaadt
51774491808Smillertecho -n standard daemons:
518f026f8beSmarc
519f026f8beSmarc# $apmd_flags is imported from /etc/rc.conf;
520f026f8beSmarc# don't run daemon if $apmd_flags == NO or /usr/sbin/apmd doesn't exist
521f026f8beSmarcif [ "X${apmd_flags}" != X"NO" -a -x /usr/sbin/apmd ]; then
522f026f8beSmarc        echo -n ' apmd';        /usr/sbin/apmd ${apmd_flags}
523f026f8beSmarcfi
524f026f8beSmarc
525a6582eadSderaadtif [ -x /usr/sbin/screenblank ]; then
526a6582eadSderaadt	echo -n ' screenblank';	/usr/sbin/screenblank
527a6582eadSderaadtfi
528a6582eadSderaadt
52974491808Smillertecho -n ' cron';		cron
530f026f8beSmarc
53174491808Smillertecho '.'
53274491808Smillert
533df930be7Sderaadtdate
5348569782fSderaadt
5358569782fSderaadt# Alternatively, on some architectures, xdm may be started in /etc/ttys.
5368569782fSderaadtif [ "X${xdm_flags}" != X"NO" ]; then
5373d05cbd8Sdownsj	echo 'starting xdm...';		/usr/X11R6/bin/xdm ${xdm_flags}
5388569782fSderaadtfi
5398569782fSderaadt
540df930be7Sderaadtexit 0
5418b757a89Sart
542