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