# $Id: rc,v 1.18 1994/02/21 03:16:43 rgrimes Exp $
# From: @(#)rc 5.27 (Berkeley) 6/5/91
# System startup script run by init on autoboot
# Output and error are redirected to console by init,
# and the console is the controlling terminal.
# Set shell to ignore SIGINT (2), but not children;
# shell catches SIGQUIT (3) and returns to single user after fsck.
trap : 3 # shouldn't be needed
PATH
=/sbin
:/bin
:/usr
/sbin
:/usr
/bin
echo Fast boot ... skipping disk checks
echo Automatic reboot
in progress...
echo "reboot failed... help!"
echo "Automatic file system check failed... help!"
echo "Reboot interrupted"
# interrupt before catcher installed
echo "Unknown error in reboot"
trap "echo 'Reboot interrupted'; exit 1" 3
umount
-a >/dev
/null
2>&1
rm -f /fastboot
# XXX (root now writeable)
# If the machine runs wall CMOS clock (compatible with MSDOS),
# activate following line by creating empty file /etc/wall_cmos_clock
# If this file not exist, following line does nothing (assumed
# the machine runs UTC CMOS clock). See adjkerntz(8) for details.
# set hostname, turn on network
# clean up left-over files
rm -f /var
/spool
/uucp
/LCK.
*
rm -f /var
/spool
/uucp
/STST
/*
# don't add .[a-z]* to rm, because of .adjkerntz file
(cd /var
/run
&& { rm -rf -- *; cp /dev
/null utmp
; chmod 644 utmp
; })
echo -n 'starting system logger'
# $timedflags is imported from /etc/netstart;
# if $timedflags == NO, timed isn't run.
if [ X
${timedflags} != X
"NO" ]; then
echo -n ', time daemon'; timed
$timedflags
# /var/crash should be a directory or a symbolic link
# to the crash directory if core dumps are to be saved.
if [ -d /var
/crash
]; then
echo checking
for core dump...
# echo -n 'checking quotas:'
chmod 666 /dev
/tty
[pqrs
]*
# check the password temp/lock file
'password file may be incorrect -- /etc/ptmp exists'
# Recover elvis editor files.
echo preserving editor files
(cd /var
/tmp
&& /usr
/libexec
/elvispreserve
"-the system rebooted" elv
* &&
rm -f elvis
[0-9a-f][0-9a-f][0-9a-f][0-9a-f]* \
elvis_
[0-9a-f][0-9a-f][0-9a-f][0-9a-f]*)
# Recover vi editor files.
virecovery
=/var
/tmp
/vi.recover
/recover.
*
if [ "$virecovery" != "/var/tmp/vi.recover/recover.*" ]; then
echo 'Recovering vi editor sessions'
# prune quickly with one rm, then use find to clean up /tmp/[lq]*
# (not needed with mfs /tmp, but doesn't hurt there...)
(cd /tmp
&& rm -rf [a-km-pr-zA-Z
]* &&
find -d .
! -name .
! -name lost
+found
! -name quotas
-exec rm -rf -- {} \
;)
# echo 'turning on accounting'; accton /var/account/acct
echo -n standard daemons
:
echo -n starting network daemons
:
# Portmapper should always be run, to provide RPC services for inetd.
if [ -x /usr
/sbin
/portmap
]; then
echo -n ' portmap'; portmap
# $gated and $routedflags are imported from /etc/netstart.
# If $gated == YES, gated is used; otherwise routed.
# If $routedflags == NO, routed isn't run.
if [ X
${gated} = X
"YES" -a -r /etc
/gated.conf
]; then
echo -n ' gated'; gated
$gatedflags
elif [ X
${routedflags} != X
"NO" ]; then
echo -n ' routed'; routed
$routedflags
if [ X
${name_server} = X
"YES" -a -r /etc
/named.boot
]; then
# $ntpdate and $xntpdflags are imported from /etc/netstart.
# If $ntpdate != NO, run ntpdate $ntpdate to set the date correctly.
# If $xntpdflags != NO, start xntpd.
if [ X
"${ntpdate}" != X
"NO" ]; then
echo ' ntpdate'; ntpdate
$ntpdate
echo -n 'starting more network daemons:'
if [ X
"${xntpdflags}" != X
"NO" ]; then
echo -n ' xntpd'; xntpd
${xntpdflags}
# $rwhod is imported from /etc/netstart;
# if $rwhod is set to something other than NO, rwhod is run.
if [ ${rwhod-NO} != "NO" ]; then
if [ X
${nfs_server} = X
"YES" -a -r /etc
/exports
]; then
echo -n ' mountd'; mountd
echo -n ' nfsd'; nfsd
-u 0,0,4 -t 0,0
echo -n ' nfsiod'; nfsiod
4
# $sendmail_flags is imported from /etc/netstart;
# if $sendmail_flags is something other than NO, sendmail is run.
if [ X
"${sendmail_flags}" != X
"NO" -a -r /etc
/sendmail.cf
]; then
echo -n ' sendmail'; sendmail
${sendmail_flags}
mount
-a -t nfs
>/dev
/null
2>&1 & # XXX shouldn't need background
# Make shared lib searching a little faster. Leave /usr/lib first if you
# add your own entries or you may come to grief.
if [ -x /sbin
/ldconfig
]; then
if [ -d /usr
/X386
/lib
]; then _LDC
="${_LDC} /usr/X386/lib" ; fi
if [ -d /usr
/local
/lib
]; then _LDC
="${_LDC} /usr/local/lib" ; fi
if [ -d /usr
/gnu
/lib
]; then _LDC
="${_LDC} /usr/gnu/lib" ; fi
echo 'setting ldconfig path:' ${_LDC}