rc revision 1.133 1 1.133 darrenr # $NetBSD: rc,v 1.133 1999/10/05 10:32:56 darrenr Exp $
2 1.73 perry # originally from: @(#)rc 8.2 (Berkeley) 3/17/94
3 1.1 cgd
4 1.1 cgd # System startup script run by init on autoboot
5 1.1 cgd # or after single-user.
6 1.1 cgd # Output and error are redirected to console by init,
7 1.1 cgd # and the console is the controlling terminal.
8 1.1 cgd
9 1.1 cgd stty status '^T'
10 1.1 cgd
11 1.1 cgd # Set shell to ignore SIGINT (2), but not children;
12 1.1 cgd # shell catches SIGQUIT (3) and returns to single user after fsck.
13 1.1 cgd trap : 2
14 1.1 cgd trap : 3 # shouldn't be needed
15 1.1 cgd
16 1.68 mycroft export HOME=/
17 1.96 jonathan export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
18 1.50 thorpej
19 1.50 thorpej # Configure ccd devices.
20 1.63 mrg if [ -f /etc/ccd.conf ]; then
21 1.50 thorpej ccdconfig -C
22 1.50 thorpej fi
23 1.107 tron
24 1.107 tron # Configure raid devices.
25 1.107 tron for dev in 0 1 2 3; do
26 1.107 tron if [ -f /etc/raid$dev.conf ]; then
27 1.107 tron raidctl -c /etc/raid$dev.conf raid$dev
28 1.107 tron fi
29 1.107 tron done
30 1.1 cgd
31 1.79 thorpej # Add all block-type swap devices; these might be necessary
32 1.79 thorpej # during disk checks.
33 1.79 thorpej swapctl -A -t blk
34 1.79 thorpej
35 1.63 mrg if [ -e /fastboot ]; then
36 1.38 cgd echo "Fast boot: skipping disk checks."
37 1.68 mycroft elif [ "$1" = autoboot ]; then
38 1.38 cgd echo "Automatic boot in progress: starting file system checks."
39 1.1 cgd fsck -p
40 1.1 cgd case $? in
41 1.1 cgd 0)
42 1.1 cgd ;;
43 1.1 cgd 2)
44 1.1 cgd exit 1
45 1.1 cgd ;;
46 1.1 cgd 4)
47 1.35 cgd echo "Rebooting..."
48 1.1 cgd reboot
49 1.38 cgd echo "Reboot failed; help!"
50 1.1 cgd exit 1
51 1.1 cgd ;;
52 1.1 cgd 8)
53 1.38 cgd echo "Automatic file system check failed; help!"
54 1.1 cgd exit 1
55 1.1 cgd ;;
56 1.1 cgd 12)
57 1.38 cgd echo "Boot interrupted."
58 1.1 cgd exit 1
59 1.1 cgd ;;
60 1.1 cgd 130)
61 1.1 cgd # interrupt before catcher installed
62 1.1 cgd exit 1
63 1.1 cgd ;;
64 1.1 cgd *)
65 1.38 cgd echo "Unknown error; help!"
66 1.1 cgd exit 1
67 1.1 cgd ;;
68 1.1 cgd esac
69 1.1 cgd fi
70 1.1 cgd
71 1.38 cgd trap "echo 'Boot interrupted.'; exit 1" 3
72 1.1 cgd
73 1.1 cgd umount -a >/dev/null 2>&1
74 1.83 drochner mount /
75 1.1 cgd rm -f /fastboot # XXX (root now writeable)
76 1.40 cgd
77 1.90 veego if [ -f /etc/rc.subr ]; then
78 1.90 veego . /etc/rc.subr
79 1.89 cjs else
80 1.90 veego echo "Can't read /etc/rc.subr; aborting."
81 1.89 cjs exit 1;
82 1.89 cjs fi
83 1.89 cjs
84 1.71 mycroft if [ -f /etc/rc.conf ]; then
85 1.63 mrg . /etc/rc.conf
86 1.63 mrg fi
87 1.63 mrg
88 1.89 cjs if [ "$rc_configured" != YES ]; then
89 1.89 cjs echo "/etc/rc.conf is not configured. Multiuser boot aborted."
90 1.89 cjs exit 1
91 1.89 cjs fi
92 1.89 cjs
93 1.40 cgd # set flags on ttys. (do early, in case they use tty for SLIP in netstart)
94 1.40 cgd echo 'setting tty flags'
95 1.40 cgd ttyflags -a
96 1.1 cgd
97 1.83 drochner # load kernel modules specified in /etc/lkm.conf if the /usr filesystem
98 1.83 drochner # is already present with "/" or can be mounted now
99 1.93 drochner if checkyesno lkm && [ -f /etc/rc.lkm ]; then
100 1.83 drochner mount /usr >/dev/null 2>&1
101 1.83 drochner if [ -x /usr/bin/ld ]; then
102 1.83 drochner lkmstage=BEFORENET
103 1.83 drochner . /etc/rc.lkm
104 1.83 drochner fi
105 1.63 mrg fi
106 1.63 mrg
107 1.124 cjs mount_critical_filesystems local
108 1.120 mellon
109 1.133 darrenr if [ -e /etc/etc.current ] ; then
110 1.133 darrenr if [ -h /etc/etc.default ] ; then
111 1.133 darrenr def=`ls -ld /etc/etc.default 2>&1`
112 1.133 darrenr default=`expr "$def" : '.*-> etc\.\(.*\)' 2>&1`
113 1.133 darrenr else
114 1.133 darrenr default=current
115 1.133 darrenr fi
116 1.133 darrenr spc=""
117 1.133 darrenr conflist=`cd /etc; ls -1d etc.* 2>&1 | egrep -v 'current|default'`
118 1.133 darrenr for i in $conflist; do
119 1.133 darrenr name=`expr $i : 'etc\.\(.*\)' 2>&1`
120 1.133 darrenr if [ $name = $default ] ; then
121 1.133 darrenr echo -n "${spc}[${name}]"
122 1.133 darrenr else
123 1.133 darrenr echo -n "${spc}${name}"
124 1.133 darrenr fi
125 1.133 darrenr spc=" "
126 1.133 darrenr done
127 1.133 darrenr echo
128 1.133 darrenr master=$$
129 1.133 darrenr conf=/etc/passwd
130 1.133 darrenr while [ ! -d /etc/etc.$conf ] ; do
131 1.133 darrenr trap 'conf=$default; echo; echo Using default of $conf' 14
132 1.133 darrenr echo -n "Which configuration [$default] ? "
133 1.133 darrenr (sleep 30 && kill -ALRM $master) >/dev/null 2>&1 &
134 1.133 darrenr read conf
135 1.133 darrenr trap "" 14
136 1.133 darrenr if [ -z $conf ] ; then
137 1.133 darrenr conf=$default
138 1.133 darrenr fi
139 1.133 darrenr if [ ! -d /etc/etc.$conf -a ! -h /etc/etc.$conf ] ; then
140 1.133 darrenr conf=/etc/passwd
141 1.133 darrenr fi
142 1.133 darrenr done
143 1.133 darrenr rm -f /etc/etc.current
144 1.133 darrenr ln -s /etc/etc.$conf /etc/etc.current
145 1.133 darrenr if [ -f /etc/rc.conf ] ; then
146 1.133 darrenr . /etc/rc.conf
147 1.133 darrenr fi
148 1.133 darrenr fi
149 1.133 darrenr
150 1.1 cgd # set hostname, turn on network
151 1.1 cgd echo 'starting network'
152 1.76 scottr sh /etc/netstart
153 1.76 scottr if [ $? -ne 0 ]; then
154 1.76 scottr exit 1
155 1.76 scottr fi
156 1.1 cgd
157 1.124 cjs mount_critical_filesystems network
158 1.99 veego
159 1.99 veego # Network Address Translation...
160 1.100 lukem if checkyesno ipnat && [ -f /etc/ipnat.conf ]; then
161 1.99 veego echo 'installing NAT rules ... '
162 1.100 lukem if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then
163 1.99 veego ipf -E -Fa
164 1.99 veego fi
165 1.99 veego ipnat -F -f /etc/ipnat.conf
166 1.99 veego fi
167 1.79 thorpej
168 1.79 thorpej # "Critical" file systems are now mounted. Go ahead and swap
169 1.79 thorpej # to files now, since they will be residing in the critical file
170 1.79 thorpej # systems (or, at least, better).
171 1.79 thorpej swapctl -A -t noblk
172 1.97 mrg
173 1.97 mrg # Check for no swap, and warn about it unless that is desired.
174 1.100 lukem if ! checkyesno no_swap; then
175 1.97 mrg swapctl -s | grep 'no swap devices configured' > /dev/null && \
176 1.97 mrg echo "WARNING: no swap space configured!"
177 1.97 mrg fi
178 1.26 deraadt
179 1.41 jtc # clean up left-over files
180 1.41 jtc rm -f /etc/nologin
181 1.41 jtc rm -f /var/spool/lock/LCK.*
182 1.41 jtc rm -f /var/spool/uucp/STST/*
183 1.45 cgd (cd /var/run && { rm -rf -- *; install -c -m 664 -g utmp /dev/null utmp; })
184 1.108 abs
185 1.131 darrenr # if this kernel supports machdep.booted_kernel, use that to build the KVM
186 1.131 darrenr # db so dmesg will run work when we boot /netbsd.new, etc.
187 1.133 darrenr sysctl machdep 2>/dev/null | grep -q booted_kernel
188 1.131 darrenr if [ $? -eq 0 ] ; then
189 1.131 darrenr kvm_mkdb `sysctl -n machdep.booted_kernel`
190 1.131 darrenr fi
191 1.111 mrg # get the system dmesg output, hopefully containing the boot messages
192 1.111 mrg # $dmesg_flags is imported from /etc/rc.conf
193 1.111 mrg if checkyesno dmesg; then
194 1.111 mrg dmesg $dmesg_flags > /var/run/dmesg.boot
195 1.111 mrg fi
196 1.41 jtc
197 1.125 tron if checkyesno wscons && [ -f /etc/rc.wscons ]; then
198 1.125 tron echo 'configuring wscons'
199 1.125 tron /bin/sh /etc/rc.wscons $wscons_flags
200 1.125 tron fi
201 1.125 tron
202 1.84 veego # start the system logger first, so that all messages from daemons
203 1.84 veego # are logged, then start savecore to get a dump on low memory systems
204 1.84 veego # and then start the name server.
205 1.63 mrg
206 1.89 cjs if checkyesno syslogd; then
207 1.63 mrg echo 'starting system logger'
208 1.119 perry # Transitional symlink for old binaries
209 1.119 perry if [ ! -h /dev/log ] ; then
210 1.119 perry ln -sf /var/run/log /dev/log
211 1.119 perry fi
212 1.119 perry rm -f /var/run/log
213 1.63 mrg syslogd $syslogd_flags
214 1.94 lukem fi
215 1.94 lukem
216 1.94 lukem # Enable ipmon (only useful if ipfilter is running)
217 1.94 lukem # NOTE: requires the IPFILTER_LOG kernel option.
218 1.94 lukem if checkyesno ipmon; then
219 1.94 lukem echo 'starting ipmon'
220 1.94 lukem ipmon $ipmon_flags &
221 1.63 mrg fi
222 1.63 mrg
223 1.84 veego # /var/crash should be a directory or a symbolic link
224 1.84 veego # to the crash directory if core dumps are to be saved.
225 1.89 cjs if checkyesno savecore; then
226 1.106 hubertf if [ -d /var/crash/. ]; then
227 1.89 cjs echo checking for core dump...
228 1.89 cjs savecore $savecore_flags /var/crash
229 1.89 cjs else
230 1.89 cjs logger -s "WARNING: no /var/crash directory; savecore not run."
231 1.84 veego fi
232 1.84 veego fi
233 1.84 veego
234 1.89 cjs if checkyesno named; then
235 1.89 cjs echo 'starting name server'; named $named_flags
236 1.89 cjs fi
237 1.89 cjs
238 1.89 cjs # set time, if requested
239 1.89 cjs if checkyesno ntpdate; then
240 1.91 mikel if [ -z "$ntpdate_hosts" ]; then
241 1.101 lukem ntpdate_hosts=`awk '
242 1.101 lukem /^server[ \t]*127.127/ {next}
243 1.115 bad /^(server|peer)/ {print $2}
244 1.101 lukem ' </etc/ntp.conf`
245 1.89 cjs fi
246 1.89 cjs if [ -n "$ntpdate_hosts" ]; then
247 1.89 cjs echo 'Setting date via ntp.'
248 1.102 lukem ntpdate -b -s $ntpdate_hosts
249 1.67 mycroft fi
250 1.63 mrg fi
251 1.63 mrg
252 1.84 veego # now start the rpc servers, for YP server/client.
253 1.63 mrg echo -n 'starting rpc daemons:'
254 1.63 mrg
255 1.63 mrg # note that portmap is generally required for all other rpc services.
256 1.89 cjs if checkyesno portmap; then
257 1.109 jwise echo -n ' portmap'; portmap $portmap_flags
258 1.63 mrg fi
259 1.63 mrg
260 1.89 cjs if checkyesno ypserv; then
261 1.63 mrg echo -n ' ypserv'; ypserv $ypserv_flags
262 1.63 mrg fi
263 1.63 mrg
264 1.89 cjs if checkyesno ypbind; then
265 1.63 mrg echo -n ' ypbind'; ypbind $ypbind_flags
266 1.63 mrg fi
267 1.63 mrg
268 1.89 cjs if checkyesno yppasswdd; then
269 1.63 mrg echo -n ' rpc.yppasswdd'; rpc.yppasswdd $yppasswdd_flags
270 1.63 mrg fi
271 1.63 mrg
272 1.89 cjs if checkyesno bootparamd; then
273 1.89 cjs if [ -r /etc/bootparams ]; then
274 1.89 cjs echo -n ' rpc.bootparamd'; rpc.bootparamd $bootparamd_flags
275 1.89 cjs else
276 1.89 cjs echo
277 1.89 cjs logger -s "WARNING: /etc/bootparams not found. " \
278 1.89 cjs "bootparamd not started."
279 1.67 mycroft fi
280 1.63 mrg fi
281 1.63 mrg
282 1.84 veego echo '.'
283 1.84 veego
284 1.84 veego # load kernel modules specified in /etc/lkm.conf
285 1.89 cjs if checkyesno lkm; then
286 1.89 cjs if [ -r /etc/rc.lkm ]; then
287 1.89 cjs lkmstage=BEFOREMOUNT
288 1.89 cjs . /etc/rc.lkm
289 1.89 cjs else
290 1.89 cjs logger -s "WARNING: /etc/rc.lkm not found; LKMs not loaded."
291 1.89 cjs fi
292 1.84 veego fi
293 1.84 veego
294 1.84 veego mount -a
295 1.84 veego
296 1.84 veego # now start the rpc servers, for NFS server/client.
297 1.133 darrenr if checkyesno nfs_client || checkyesno nfs_server; then
298 1.133 darrenr echo -n 'starting nfs daemons:'
299 1.133 darrenr
300 1.133 darrenr nfs_locking=NO
301 1.84 veego
302 1.133 darrenr if checkyesno nfs_server; then
303 1.133 darrenr if [ -r /etc/exports ]; then
304 1.133 darrenr rm -f /var/db/mountdtab
305 1.133 darrenr echo -n > /var/db/mountdtab
306 1.133 darrenr echo -n ' mountd'; mountd $mountd_flags
307 1.133 darrenr echo -n ' nfsd'; nfsd $nfsd_flags
308 1.133 darrenr nfs_locking=YES
309 1.133 darrenr else
310 1.133 darrenr echo
311 1.133 darrenr logger -s "WARNING: /etc/exports not readable; " \
312 1.133 darrenr "NFS server not started."
313 1.133 darrenr fi
314 1.133 darrenr fi
315 1.67 mycroft
316 1.133 darrenr if checkyesno nfs_client; then
317 1.133 darrenr echo -n ' nfsiod'; nfsiod $nfsiod_flags
318 1.100 lukem nfs_locking=YES
319 1.69 mycroft fi
320 1.63 mrg
321 1.133 darrenr if checkyesno nfs_locking; then
322 1.133 darrenr if checkyesno statd; then
323 1.133 darrenr echo -n ' rpc.statd'; rpc.statd $statd_flags
324 1.133 darrenr fi
325 1.133 darrenr if checkyesno lockd; then
326 1.133 darrenr echo -n ' rpc.lockd'; rpc.lockd $lockd_flags
327 1.133 darrenr fi
328 1.66 scottr fi
329 1.63 mrg
330 1.133 darrenr if checkyesno amd; then
331 1.133 darrenr if [ -d "$amd_dir" ]; then
332 1.133 darrenr if [ -r "$amd_master" ]; then
333 1.133 darrenr echo -n ' amd'
334 1.133 darrenr amd $amd_flags -p -a $amd_dir \
335 1.133 darrenr `sed s/#.*$// <$amd_master` >/var/run/amd.pid
336 1.133 darrenr else
337 1.133 darrenr echo
338 1.133 darrenr logger -s "WARNING: \$amd_master ($amd_master)not " \
339 1.133 darrenr "readable; amd not started."
340 1.133 darrenr fi
341 1.89 cjs else
342 1.89 cjs echo
343 1.133 darrenr logger -s "WARNING: \$amd_dir ($amd_dir) not a directory; " \
344 1.133 darrenr "amd not started."
345 1.89 cjs fi
346 1.67 mycroft fi
347 1.133 darrenr echo '.'
348 1.63 mrg fi
349 1.63 mrg
350 1.83 drochner
351 1.63 mrg if [ -f /sbin/ldconfig ]; then
352 1.63 mrg echo 'creating runtime link editor directory cache.'
353 1.88 thorpej ldconfig
354 1.63 mrg fi
355 1.83 drochner
356 1.83 drochner # load kernel modules specified in /etc/lkm.conf
357 1.89 cjs if checkyesno lkm && [ -f /etc/rc.lkm ]; then
358 1.83 drochner lkmstage=AFTERMOUNT
359 1.83 drochner . /etc/rc.lkm
360 1.132 bouyer fi
361 1.132 bouyer
362 1.132 bouyer # if $defcorename is set, change it here.
363 1.132 bouyer if [ -n "$defcorename" ]; then
364 1.132 bouyer echo -n 'setting default core name template: '
365 1.132 bouyer sysctl -w kern.defcorename=$defcorename
366 1.1 cgd fi
367 1.1 cgd
368 1.112 mrg # if $securelevel is set, change it here, else if it is 0, change
369 1.112 mrg # it to 1 here, before we start login services.
370 1.113 mrg if [ -n "$securelevel" ]; then
371 1.112 mrg echo -n 'setting securelevel: '
372 1.112 mrg sysctl -w kern.securelevel=$securelevel
373 1.112 mrg else
374 1.116 frueauf securelevel=`sysctl -n kern.securelevel`
375 1.112 mrg if [ x"$securelevel" = x0 ]; then
376 1.112 mrg echo -n 'setting securelevel: '
377 1.112 mrg sysctl -w kern.securelevel=1
378 1.112 mrg fi
379 1.112 mrg fi
380 1.112 mrg
381 1.89 cjs echo -n 'checking quotas:'; quotacheck -a; echo ' done.'
382 1.47 deraadt quotaon -a
383 1.1 cgd
384 1.1 cgd # build ps databases
385 1.2 cgd echo 'building databases...'
386 1.11 cgd kvm_mkdb /netbsd
387 1.1 cgd dev_mkdb
388 1.1 cgd
389 1.1 cgd chmod 666 /dev/tty[pqrs]*
390 1.1 cgd
391 1.1 cgd # check the password temp/lock file
392 1.1 cgd if [ -f /etc/ptmp ]
393 1.1 cgd then
394 1.1 cgd logger -s -p auth.err \
395 1.1 cgd 'password file may be incorrect -- /etc/ptmp exists'
396 1.1 cgd fi
397 1.1 cgd
398 1.112 mrg # XXX replace me with a script that works!
399 1.85 perry virecovery=`echo /var/tmp/vi.recover/recover.*`
400 1.32 mycroft if [ "$virecovery" != "/var/tmp/vi.recover/recover.*" ]; then
401 1.32 mycroft echo preserving editor files
402 1.32 mycroft for i in $virecovery; do
403 1.129 christos if [ -f $i ]; then
404 1.129 christos sendmail -t < $i
405 1.129 christos fi
406 1.32 mycroft done
407 1.32 mycroft fi
408 1.1 cgd
409 1.1 cgd echo clearing /tmp
410 1.1 cgd
411 1.65 mikel # Prune quickly with one rm, then use find to clean up /tmp/[lq]* (this
412 1.65 mikel # is not needed with mfs /tmp, but doesn't hurt anything).
413 1.1 cgd (cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
414 1.46 deraadt find . ! -name . ! -name lost+found ! -name quota.user \
415 1.46 deraadt ! -name quota.group -exec rm -rf -- {} \; -type d -prune)
416 1.1 cgd
417 1.74 perry # Update kernel info in /etc/motd
418 1.74 perry # Must be done *before* interactive logins are possible to prevent
419 1.74 perry # possible race conditions.
420 1.89 cjs if checkyesno update_motd; then
421 1.74 perry echo 'updating motd.'
422 1.74 perry if [ ! -f /etc/motd ]; then
423 1.74 perry install -c -o root -g wheel -m 664 /dev/null /etc/motd
424 1.74 perry fi
425 1.128 christos T=/etc/_motd
426 1.74 perry rm -f $T
427 1.74 perry sysctl -n kern.version | sed 1q > $T
428 1.74 perry echo "" >> $T
429 1.74 perry sed '1,/^$/d' < /etc/motd >> $T
430 1.74 perry cmp -s $T /etc/motd || cp $T /etc/motd
431 1.74 perry rm -f $T
432 1.74 perry fi
433 1.74 perry
434 1.34 cgd if [ -f /var/account/acct ]; then
435 1.34 cgd echo 'turning on accounting'; accton /var/account/acct
436 1.34 cgd fi
437 1.1 cgd
438 1.1 cgd echo -n standard daemons:
439 1.89 cjs if checkyesno update; then
440 1.70 mycroft echo -n ' update'; update $update_flags
441 1.70 mycroft fi
442 1.110 jwise if checkyesno cron; then
443 1.110 jwise echo -n ' cron'; cron
444 1.110 jwise fi
445 1.1 cgd echo '.'
446 1.1 cgd
447 1.63 mrg # now start all the other daemons
448 1.1 cgd echo -n starting network daemons:
449 1.1 cgd
450 1.89 cjs if checkyesno gated && checkyesno routed; then
451 1.89 cjs echo
452 1.89 cjs logger -s "WARNING: gated and routed both requested to be run: " \
453 1.89 cjs "running only gated."
454 1.89 cjs routed=NO
455 1.89 cjs fi
456 1.89 cjs
457 1.89 cjs if checkyesno gated; then
458 1.89 cjs if [ -r /etc/gated.conf ]; then
459 1.89 cjs echo -n ' gated'; gated $gated_flags
460 1.89 cjs else
461 1.89 cjs logger -s "WARNING: no /etc/gated.conf; gated not started."
462 1.67 mycroft fi
463 1.89 cjs fi
464 1.89 cjs
465 1.89 cjs if checkyesno routed; then
466 1.48 mycroft echo -n ' routed'; routed $routed_flags
467 1.1 cgd fi
468 1.1 cgd
469 1.89 cjs if checkyesno mrouted; then
470 1.55 thorpej echo -n ' mrouted'; mrouted $mrouted_flags
471 1.127 itojun fi
472 1.127 itojun
473 1.127 itojun if checkyesno route6d; then
474 1.127 itojun echo -n ' route6d'; route6d $route6d_flags
475 1.127 itojun fi
476 1.127 itojun
477 1.130 itojun if checkyesno rtsold; then
478 1.130 itojun if checkyesno ip6forwarding; then
479 1.130 itojun logger -s "WARNING: rtsold cannot be used on IPv6 router."
480 1.130 itojun else
481 1.130 itojun echo -n ' rtsold'; rtsold $rtsold_flags
482 1.130 itojun fi
483 1.130 itojun fi
484 1.130 itojun
485 1.127 itojun if checkyesno rtadvd; then
486 1.130 itojun if checkyesno ip6forwarding; then
487 1.130 itojun echo -n ' rtadvd'; rtadvd $rtadvd_flags
488 1.130 itojun else
489 1.130 itojun logger -s "WARNING: rtadvd cannot be used on IPv6 host."
490 1.130 itojun fi
491 1.55 thorpej fi
492 1.55 thorpej
493 1.89 cjs if checkyesno timed; then
494 1.67 mycroft echo -n ' timed'; timed $timed_flags
495 1.63 mrg fi
496 1.63 mrg
497 1.89 cjs if checkyesno xntpd; then
498 1.67 mycroft echo -n ' xntpd'; xntpd $xntpd_flags
499 1.61 mrg fi
500 1.61 mrg
501 1.89 cjs if checkyesno dhcpd; then
502 1.89 cjs if [ -r /etc/dhcpd.conf ]; then
503 1.89 cjs echo -n ' dhcpd'; dhcpd $dhcpd_flags
504 1.89 cjs else
505 1.89 cjs echo
506 1.89 cjs logger -s "WARNING: /etc/dhcpd.conf not readable; " \
507 1.89 cjs "dhcpd not started."
508 1.67 mycroft fi
509 1.122 sommerfe elif checkyesno dhcrelay; then
510 1.122 sommerfe echo -n ' dhcrelay'; dhcrelay $dhcrelay_flags
511 1.29 mycroft fi
512 1.29 mycroft
513 1.89 cjs if checkyesno rwhod; then
514 1.48 mycroft echo -n ' rwhod'; rwhod
515 1.1 cgd fi
516 1.1 cgd
517 1.89 cjs if checkyesno lpd; then
518 1.89 cjs echo -n ' lpd'; lpd $lpd_flags
519 1.60 tls fi
520 1.60 tls
521 1.63 mrg # We call sendmail with a full path so that SIGHUP works.
522 1.89 cjs if checkyesno sendmail; then
523 1.89 cjs if [ -r /etc/sendmail.cf ]; then
524 1.89 cjs echo -n ' sendmail'; /usr/sbin/sendmail $sendmail_flags
525 1.89 cjs else
526 1.89 cjs echo
527 1.89 cjs logger -s "WARNING: /etc/sendmail.cf not readable; " \
528 1.89 cjs "sendmail not started."
529 1.67 mycroft fi
530 1.60 tls fi
531 1.60 tls
532 1.96 jonathan # Start xfs before boot daemons, so its ready before client xterminals.
533 1.96 jonathan if checkyesno xfs; then
534 1.96 jonathan echo -n ' xfs'; xfs $xfs_flags &
535 1.98 perry sleep 2
536 1.96 jonathan fi
537 1.96 jonathan
538 1.89 cjs if checkyesno rarpd; then
539 1.89 cjs if [ -r /etc/ethers ]; then
540 1.89 cjs echo -n ' rarpd'; rarpd $rarpd_flags
541 1.89 cjs else
542 1.89 cjs echo
543 1.89 cjs logger -s "WARNING: /etc/ethers not readable; " \
544 1.89 cjs "rarpd not started."
545 1.67 mycroft fi
546 1.60 tls fi
547 1.60 tls
548 1.89 cjs if checkyesno rbootd; then
549 1.89 cjs if [ -r /etc/rbootd.conf ]; then
550 1.89 cjs echo -n ' rbootd'; rbootd $rbootd_flags
551 1.89 cjs else
552 1.89 cjs echo
553 1.89 cjs logger -s "WARNING: /etc/rbootd.conf not readable; " \
554 1.111 mrg "rbootd not started."
555 1.67 mycroft fi
556 1.72 cjs fi
557 1.72 cjs
558 1.89 cjs if checkyesno mopd; then
559 1.72 cjs echo -n ' mopd'; mopd $mopd_flags
560 1.86 perry fi
561 1.86 perry
562 1.89 cjs if checkyesno apmd; then
563 1.86 perry echo -n ' apmd'; apmd $apmd_flags
564 1.103 mrg fi
565 1.103 mrg
566 1.103 mrg if checkyesno screenblank; then
567 1.103 mrg echo -n ' screenblank'; screenblank $screenblank_flags
568 1.52 thorpej fi
569 1.52 thorpej
570 1.89 cjs if checkyesno inetd; then
571 1.89 cjs if [ -r /etc/inetd.conf ]; then
572 1.89 cjs echo -n ' inetd'; inetd $inetd_flags
573 1.89 cjs else
574 1.89 cjs echo
575 1.89 cjs logger -s "WARNING: /etc/inetd.conf not readable; " \
576 1.89 cjs "inetd not started."
577 1.67 mycroft fi
578 1.96 jonathan fi
579 1.96 jonathan
580 1.1 cgd echo '.'
581 1.73 perry
582 1.73 perry # Kerberos runs ONLY on the Kerberos server machine
583 1.89 cjs if checkyesno kerberos; then
584 1.73 perry echo -n 'starting kerberos daemons:'
585 1.73 perry echo -n ' kerberos'; kerberos >> /var/log/kerberos.log &
586 1.73 perry echo -n ' kadmind'; kadmind -n >> /var/log/kadmind.log &
587 1.73 perry echo '.'
588 1.123 drochner fi
589 1.123 drochner
590 1.123 drochner # xdm after wscons - need a virtual screen for X
591 1.123 drochner if checkyesno xdm; then
592 1.123 drochner echo 'starting xdm'
593 1.123 drochner xdm $xdm_flags
594 1.73 perry fi
595 1.1 cgd
596 1.25 mycroft . /etc/rc.local
597 1.1 cgd
598 1.1 cgd date
599 1.1 cgd exit 0
600