515ffb95e6
gives the flags to be passed to sendmail when it is started. (If it is "NO", sendmail is not started.) Also, always start the portmapper regardless of the value of $nfs_server; this should prevent the inetd complaints we have seen from recurring.
181 lines
3.9 KiB
Bash
181 lines
3.9 KiB
Bash
#!/bin/sh
|
|
# $Id$
|
|
# From: @(#)rc 5.27 (Berkeley) 6/5/91
|
|
|
|
# System startup script run by init on autoboot
|
|
# or after single-user.
|
|
# Output and error are redirected to console by init,
|
|
# and the console is the controlling terminal.
|
|
|
|
stty status '^T'
|
|
|
|
# Set shell to ignore SIGINT (2), but not children;
|
|
# shell catches SIGQUIT (3) and returns to single user after fsck.
|
|
trap : 2
|
|
trap : 3 # shouldn't be needed
|
|
|
|
HOME=/; export HOME
|
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
export PATH
|
|
|
|
if [ -e /fastboot ]
|
|
then
|
|
echo Fast boot ... skipping disk checks
|
|
elif [ $1x = autobootx ]
|
|
then
|
|
echo Automatic reboot in progress...
|
|
fsck -p
|
|
case $? in
|
|
0)
|
|
;;
|
|
2)
|
|
exit 1
|
|
;;
|
|
4)
|
|
reboot
|
|
echo "reboot failed... help!"
|
|
exit 1
|
|
;;
|
|
8)
|
|
echo "Automatic file system check failed... help!"
|
|
exit 1
|
|
;;
|
|
12)
|
|
echo "Reboot interrupted"
|
|
exit 1
|
|
;;
|
|
130)
|
|
# interrupt before catcher installed
|
|
exit 1
|
|
;;
|
|
*)
|
|
echo "Unknown error in reboot"
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
trap "echo 'Reboot interrupted'; exit 1" 3
|
|
|
|
swapon -a
|
|
|
|
umount -a >/dev/null 2>&1
|
|
mount -a -t nonfs
|
|
rm -f /fastboot # XXX (root now writeable)
|
|
|
|
# set hostname, turn on network
|
|
echo 'starting network'
|
|
. /etc/netstart
|
|
|
|
mount -a -t nfs >/dev/null 2>&1 & # XXX shouldn't need background
|
|
|
|
# clean up left-over files
|
|
rm -f /etc/nologin
|
|
rm -f /var/spool/uucp/LCK.*
|
|
rm -f /var/spool/uucp/STST/*
|
|
(cd /var/run && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; })
|
|
|
|
echo -n 'starting system logger'
|
|
rm -f /dev/log
|
|
syslogd
|
|
|
|
# $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
|
|
fi
|
|
echo '.'
|
|
|
|
# /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...
|
|
savecore /var/crash
|
|
fi
|
|
|
|
# echo -n 'checking quotas:'
|
|
#quotacheck -a
|
|
# echo ' done.'
|
|
#quotaon -a
|
|
|
|
# build ps databases
|
|
kvm_mkdb /386bsd
|
|
dev_mkdb
|
|
|
|
chmod 666 /dev/tty[pqrs]*
|
|
|
|
# check the password temp/lock file
|
|
if [ -f /etc/ptmp ]
|
|
then
|
|
logger -s -p auth.err \
|
|
'password file may be incorrect -- /etc/ptmp exists'
|
|
fi
|
|
|
|
echo preserving editor files
|
|
(cd /var/tmp && /usr/libexec/elvispreserve "-the system rebooted" elvis* &&
|
|
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]*)
|
|
|
|
echo clearing /tmp
|
|
|
|
# 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 . ! -name . ! -name lost+found ! -name quotas -exec rm -rf -- {} \;)
|
|
|
|
# echo 'turning on accounting'; accton /var/account/acct
|
|
|
|
echo -n standard daemons:
|
|
echo -n ' update'; update
|
|
echo -n ' crond'; /usr/libexec/crond
|
|
echo '.'
|
|
|
|
echo -n starting network daemons:
|
|
|
|
# $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
|
|
fi
|
|
|
|
if [ X${name_server} = X"YES" -a -r /etc/named.boot ]; then
|
|
echo -n ' named'; named
|
|
fi
|
|
|
|
# $rwhod is imported from /etc/netstart;
|
|
# if $rwhod is set to something other than NO, rwhod is run.
|
|
if [ ${rwhod-NO} != "NO" ]; then
|
|
echo -n ' rwhod'; rwhod
|
|
fi
|
|
|
|
echo -n ' printer'; lpd
|
|
|
|
# Portmapper should always be run, to provide RPC services for inetd.
|
|
if [ -x /usr/sbin/portmap ]; then
|
|
echo -n ' portmap'; portmap
|
|
fi
|
|
|
|
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
|
|
fi
|
|
|
|
# $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}
|
|
fi
|
|
|
|
echo -n ' inetd'; inetd
|
|
echo '.'
|
|
|
|
sh /etc/rc.local
|
|
|
|
date
|
|
|
|
exit 0
|