rc revision 1.31
1#	@(#)rc	5.27 (Berkeley) 6/5/91
2#	$Id: rc,v 1.31 1994/01/13 18:43:50 jtc Exp $
3
4# System startup script run by init on autoboot
5# or after single-user.
6# Output and error are redirected to console by init,
7# and the console is the controlling terminal.
8
9stty status '^T'
10
11# Set shell to ignore SIGINT (2), but not children;
12# shell catches SIGQUIT (3) and returns to single user after fsck.
13trap : 2
14trap : 3	# shouldn't be needed
15
16HOME=/; export HOME
17PATH=/sbin:/bin:/usr/sbin:/usr/bin
18export PATH
19
20if [ -e /fastboot ]
21then
22	echo Fast boot ... skipping disk checks
23elif [ $1x = autobootx ]
24then
25	echo Automatic reboot in progress...
26	fsck -p
27	case $? in
28	0)
29		;;
30	2)
31		exit 1
32		;;
33	4)
34		reboot
35		echo "reboot failed... help!"
36		exit 1
37		;;
38	8)
39		echo "Automatic file system check failed... help!"
40		exit 1
41		;;
42	12)
43		echo "Reboot interrupted"
44		exit 1
45		;;
46	130)
47		# interrupt before catcher installed
48		exit 1
49		;;
50	*)
51		echo "Unknown error in reboot"
52		exit 1
53		;;
54	esac
55fi
56
57trap "echo 'Reboot interrupted'; exit 1" 3
58
59swapon -a
60
61umount -a >/dev/null 2>&1
62mount -a -t nonfs
63rm -f /fastboot		# XXX (root now writeable)
64
65# set hostname, turn on network
66echo 'starting network'
67. /etc/netstart
68
69mount /usr >/dev/null 2>&1
70
71echo -n 'starting rpc daemons:'
72echo -n ' portmap';		portmap
73
74if [ -f /usr/sbin/ypbind -a -d /var/yp ]; then
75	echo -n ' ypbind';		ypbind
76fi
77
78# $nfs_server is imported from /etc/netstart;
79# if $nfs_server == YES, the machine is setup for being an nfs server
80if [ X${nfs_server} = X"YES" -a -r /etc/exports ]; then
81	rm -f /var/db/mountdtab	
82	echo -n ' mountd';		mountd
83	echo -n ' nfsd';		nfsd -u 0,0,4 -t 0,0
84fi
85
86# $nfs_client is imported from /etc/netstart;
87# if $nfs_client == YES, the machine is setup for being an nfs client
88if [ X${nfs_client} = X"YES" ]; then
89	echo -n ' nfsiod';		nfsiod 4
90fi
91
92if [ X${amd} = X"YES" ]; then
93	echo -n ' amd'
94	amd -x error,noinfo,nostats -a /tmp_mnt /home amd.home
95fi
96
97echo '.'
98mount -a -t nfs
99
100# clean up left-over files
101rm -f /etc/nologin
102rm -f /var/spool/uucp/LCK.*
103rm -f /var/spool/uucp/STST/*
104(cd /var/run && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; })
105
106echo 'runtime link editor directory cache'
107rm -f /var/run/ld.so.hints
108ldconfig
109
110echo -n 'starting system logger'
111rm -f /dev/log
112syslogd
113
114# $timed_flags is imported from /etc/netstart;
115# if $timed_flags == NO, timed isn't run.
116if [ "X${timed_flags}" != X"NO" ]; then
117	echo -n ', time daemon'; timed $timed_flags
118fi
119echo '.'
120
121# /var/crash should be a directory or a symbolic link
122# to the crash directory if core dumps are to be saved.
123if [ -d /var/crash ]; then
124	echo checking for core dump...
125	savecore /var/crash
126fi
127
128#				echo -n 'checking quotas:'
129#quotacheck -a
130#				echo ' done.'
131#quotaon -a
132
133# build ps databases
134echo 'building databases...'
135kvm_mkdb /netbsd
136dev_mkdb
137
138chmod 666 /dev/tty[pqrs]*
139
140# check the password temp/lock file
141if [ -f /etc/ptmp ]
142then
143	logger -s -p auth.err \
144	'password file may be incorrect -- /etc/ptmp exists'
145fi
146
147echo preserving editor files
148(cd /var/tmp && /usr/libexec/elvispreserve "-the system rebooted" elvis* &&
149     rm -f elvis[0-9a-f][0-9a-f][0-9a-f][0-9a-f]* \
150	 elvis_[0-9a-f][0-9a-f][0-9a-f][0-9a-f]*)
151
152echo clearing /tmp
153
154# prune quickly with one rm, then use find to clean up /tmp/[lq]*
155# (not needed with mfs /tmp, but doesn't hurt there...)
156(cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
157    find . ! -name . ! -name lost+found ! -name quotas \
158	-exec rm -rf -- {} \; -type d -prune)
159
160#echo 'turning on accounting';	accton /var/account/acct
161
162echo -n standard daemons:
163echo -n ' update';		update
164echo -n ' cron';		cron
165echo '.'
166
167echo -n starting network daemons:
168
169# $gated and $routed_flags are imported from /etc/netstart.
170# If $gated == YES, gated is used; otherwise routed.
171# If $routed_flags == NO, routed isn't run.
172if [ X${gated} = X"YES" -a -r /etc/gated.conf ]; then
173	echo -n ' gated';	gated $gated_flags
174elif [ "X${routed_flags}" != X"NO" ]; then
175	echo -n ' routed';	routed $routed_flags
176fi
177
178# $name_server is imported from /etc/netstart;
179# if $name_server == YES, named is run.
180if [ X${name_server} = X"YES" -a -r /etc/named.boot ]; then
181	echo -n ' named';		named
182fi
183
184# $rwhod is imported from /etc/netstart;
185# if $rwhod == YES, rwhod is run.
186if [ X${rwhod} = X"YES" ]; then
187	echo -n ' rwhod';	rwhod
188fi
189
190echo -n ' printer';		lpd
191
192# $sendmail_flags is imported from /etc/netstart;
193# If $sendmail_flags == NO or /etc/sendmail.cf doesn't exist, then
194# sendmail isn't run.
195if [ "X${sendmail_flags}" != X"NO" -a -r /etc/sendmail.cf ]; then
196	echo -n ' sendmail';		sendmail ${sendmail_flags}
197fi
198
199echo -n ' inetd';		inetd
200
201# $rarpd_flags is importent from /etc/netstart;
202# If $rarpd_flags == NO or /etc/ethers doesn't exist, then
203# rarpd isn't run.
204if [ "X${rarpd_flags}" != X"NO" -a -r /etc/ethers ]; then
205	echo -n ' rarpd';		rarpd ${rarpd_flags}
206fi
207
208# $bootparamd_flags is importent from /etc/netstart;
209# If $bootparamd_flags == NO or /etc/bootparams doesn't exist, then
210# bootparamd isn't run.
211if [ "X${bootparamd_flags}" != X"NO" -a -r /etc/bootparams ]; then
212	echo -n ' rpc.bootparamd';	rpc.bootparamd ${bootparamd_flags}
213fi
214
215echo '.'
216
217. /etc/rc.local
218
219date
220
221exit 0
222