1df930be7Sderaadt# $NetBSD: rc,v 1.54 1995/10/08 18:11:43 thorpej Exp $ 2df930be7Sderaadt# from: @(#)rc 8.2 (Berkeley) 3/17/94 3df930be7Sderaadt 4df930be7Sderaadt# System startup script run by init on autoboot 5df930be7Sderaadt# or after single-user. 6df930be7Sderaadt# Output and error are redirected to console by init, 7df930be7Sderaadt# and the console is the controlling terminal. 8df930be7Sderaadt 9df930be7Sderaadtstty status '^T' 10df930be7Sderaadt 11df930be7Sderaadt# Set shell to ignore SIGINT (2), but not children; 12df930be7Sderaadt# shell catches SIGQUIT (3) and returns to single user after fsck. 13df930be7Sderaadttrap : 2 14df930be7Sderaadttrap : 3 # shouldn't be needed 15df930be7Sderaadt 16df930be7SderaadtHOME=/; export HOME 17df930be7SderaadtPATH=/sbin:/bin:/usr/sbin:/usr/bin 18df930be7Sderaadtexport PATH 19df930be7Sderaadt 20df930be7Sderaadt# Configure ccd devices. 21df930be7Sderaadtif [ -f /etc/ccd.conf ] 22df930be7Sderaadtthen 23df930be7Sderaadt ccdconfig -C 24df930be7Sderaadtfi 25df930be7Sderaadt 26df930be7Sderaadtif [ -e /fastboot ] 27df930be7Sderaadtthen 28df930be7Sderaadt echo "Fast boot: skipping disk checks." 29df930be7Sderaadtelif [ $1x = autobootx ] 30df930be7Sderaadtthen 31df930be7Sderaadt echo "Automatic boot in progress: starting file system checks." 32df930be7Sderaadt fsck -p 33df930be7Sderaadt case $? in 34df930be7Sderaadt 0) 35df930be7Sderaadt ;; 36df930be7Sderaadt 2) 37df930be7Sderaadt exit 1 38df930be7Sderaadt ;; 39df930be7Sderaadt 4) 40df930be7Sderaadt echo "Rebooting..." 41df930be7Sderaadt reboot 42df930be7Sderaadt echo "Reboot failed; help!" 43df930be7Sderaadt exit 1 44df930be7Sderaadt ;; 45df930be7Sderaadt 8) 46df930be7Sderaadt echo "Automatic file system check failed; help!" 47df930be7Sderaadt exit 1 48df930be7Sderaadt ;; 49df930be7Sderaadt 12) 50df930be7Sderaadt echo "Boot interrupted." 51df930be7Sderaadt exit 1 52df930be7Sderaadt ;; 53df930be7Sderaadt 130) 54df930be7Sderaadt # interrupt before catcher installed 55df930be7Sderaadt exit 1 56df930be7Sderaadt ;; 57df930be7Sderaadt *) 58df930be7Sderaadt echo "Unknown error; help!" 59df930be7Sderaadt exit 1 60df930be7Sderaadt ;; 61df930be7Sderaadt esac 62df930be7Sderaadtfi 63df930be7Sderaadt 64df930be7Sderaadttrap "echo 'Boot interrupted.'; exit 1" 3 65df930be7Sderaadt 66df930be7Sderaadtswapon -a 67df930be7Sderaadt 68df930be7Sderaadtumount -a >/dev/null 2>&1 69df930be7Sderaadtmount -a -t nonfs 70df930be7Sderaadtrm -f /fastboot # XXX (root now writeable) 71df930be7Sderaadt 72df930be7Sderaadt# set flags on ttys. (do early, in case they use tty for SLIP in netstart) 73df930be7Sderaadtecho 'setting tty flags' 74df930be7Sderaadtttyflags -a 75df930be7Sderaadt 76df930be7Sderaadt# set hostname, turn on network 77df930be7Sderaadtecho 'starting network' 78df930be7Sderaadt. /etc/netstart 79df930be7Sderaadt 80df930be7Sderaadtmount /usr >/dev/null 2>&1 81df930be7Sderaadtmount /var >/dev/null 2>&1 82df930be7Sderaadt 83df930be7Sderaadt# clean up left-over files 84df930be7Sderaadtrm -f /etc/nologin 85df930be7Sderaadtrm -f /var/spool/lock/LCK.* 86df930be7Sderaadtrm -f /var/spool/uucp/STST/* 87df930be7Sderaadt(cd /var/run && { rm -rf -- *; install -c -m 664 -g utmp /dev/null utmp; }) 88df930be7Sderaadt 89df930be7Sderaadtecho -n 'starting rpc daemons:' 90df930be7Sderaadtecho -n ' portmap'; portmap 91df930be7Sderaadt 92df930be7Sderaadtif [ -f /usr/sbin/ypbind -a -d /var/yp ]; then 93df930be7Sderaadt echo -n ' ypbind'; ypbind 94df930be7Sderaadtfi 95df930be7Sderaadt 96df930be7Sderaadt# $nfs_server is imported from /etc/netstart; 97df930be7Sderaadt# if $nfs_server == YES, the machine is setup for being an nfs server 98df930be7Sderaadtif [ X${nfs_server} = X"YES" -a -r /etc/exports ]; then 99df930be7Sderaadt rm -f /var/db/mountdtab 100df930be7Sderaadt echo -n > /var/db/mountdtab 101df930be7Sderaadt echo -n ' mountd'; mountd 102df930be7Sderaadt echo -n ' nfsd'; nfsd -tun 4 103df930be7Sderaadtfi 104df930be7Sderaadt 105df930be7Sderaadt# $nfs_client is imported from /etc/netstart; 106df930be7Sderaadt# if $nfs_client == YES, the machine is setup for being an nfs client 107df930be7Sderaadtif [ X${nfs_client} = X"YES" ]; then 108df930be7Sderaadt echo -n ' nfsiod'; nfsiod -n 4 109df930be7Sderaadtfi 110df930be7Sderaadt 111df930be7Sderaadtif [ X${amd} = X"YES" -a -d ${amd_dir} -a -r ${amd_master} ]; then 112df930be7Sderaadt echo -n ' amd' 113df930be7Sderaadt amd -l syslog -x error,noinfo,nostats -p \ 114df930be7Sderaadt -a ${amd_dir} `cat ${amd_master}` > /var/run/amd.pid 115df930be7Sderaadtfi 116df930be7Sderaadt 117df930be7Sderaadtecho '.' 118df930be7Sderaadtmount -a -t nfs 119df930be7Sderaadt 120df930be7Sderaadtecho -n 'starting system logger' 121df930be7Sderaadtrm -f /dev/log 122df930be7Sderaadtsyslogd 123df930be7Sderaadt 124df930be7Sderaadt# $timed_flags is imported from /etc/netstart; 125df930be7Sderaadt# if $timed_flags == NO, timed isn't run. 126df930be7Sderaadtif [ "X${timed_flags}" != X"NO" ]; then 127df930be7Sderaadt echo -n ', time daemon'; timed $timed_flags 128df930be7Sderaadtfi 129df930be7Sderaadtecho '.' 130df930be7Sderaadt 131df930be7Sderaadt# /var/crash should be a directory or a symbolic link 132df930be7Sderaadt# to the crash directory if core dumps are to be saved. 133df930be7Sderaadtif [ -d /var/crash ]; then 134df930be7Sderaadt echo checking for core dump... 135df930be7Sderaadt savecore /var/crash 136df930be7Sderaadtfi 137df930be7Sderaadt 138df930be7Sderaadt echo -n 'checking quotas:' 139df930be7Sderaadtquotacheck -a 140df930be7Sderaadt echo ' done.' 141df930be7Sderaadtquotaon -a 142df930be7Sderaadt 143df930be7Sderaadt# build ps databases 144df930be7Sderaadtecho 'building databases...' 145*e8bd198cSderaadtkvm_mkdb /bsd 146df930be7Sderaadtdev_mkdb 147df930be7Sderaadt 148df930be7Sderaadtchmod 666 /dev/tty[pqrs]* 149df930be7Sderaadt 150df930be7Sderaadt# check the password temp/lock file 151df930be7Sderaadtif [ -f /etc/ptmp ] 152df930be7Sderaadtthen 153df930be7Sderaadt logger -s -p auth.err \ 154df930be7Sderaadt 'password file may be incorrect -- /etc/ptmp exists' 155df930be7Sderaadtfi 156df930be7Sderaadt 157df930be7Sderaadtvirecovery=/var/tmp/vi.recover/recover.* 158df930be7Sderaadtif [ "$virecovery" != "/var/tmp/vi.recover/recover.*" ]; then 159df930be7Sderaadt echo preserving editor files 160df930be7Sderaadt for i in $virecovery; do 161df930be7Sderaadt sendmail -t < $i 162df930be7Sderaadt done 163df930be7Sderaadtfi 164df930be7Sderaadt 165df930be7Sderaadtecho clearing /tmp 166df930be7Sderaadt 167df930be7Sderaadt# prune quickly with one rm, then use find to clean up /tmp/[lq]* 168df930be7Sderaadt# (not needed with mfs /tmp, but doesn't hurt there...) 169df930be7Sderaadt(cd /tmp && rm -rf [a-km-pr-zA-Z]* && 170df930be7Sderaadt find . ! -name . ! -name lost+found ! -name quota.user \ 171df930be7Sderaadt ! -name quota.group -exec rm -rf -- {} \; -type d -prune) 172df930be7Sderaadt 173df930be7Sderaadtif [ -f /var/account/acct ]; then 174df930be7Sderaadt echo 'turning on accounting'; accton /var/account/acct 175df930be7Sderaadtfi 176df930be7Sderaadt 177df930be7Sderaadtecho -n standard daemons: 178df930be7Sderaadtecho -n ' update'; update 179df930be7Sderaadtecho -n ' cron'; cron 180df930be7Sderaadtecho '.' 181df930be7Sderaadt 182df930be7Sderaadtecho -n starting network daemons: 183df930be7Sderaadt 184df930be7Sderaadt# $gated and $routed_flags are imported from /etc/netstart. 185df930be7Sderaadt# If $gated == YES, gated is used; otherwise routed. 186df930be7Sderaadt# If $routed_flags == NO, routed isn't run. 187df930be7Sderaadtif [ X${gated} = X"YES" -a -r /etc/gated.conf ]; then 188df930be7Sderaadt echo -n ' gated'; gated $gated_flags 189df930be7Sderaadtelif [ "X${routed_flags}" != X"NO" ]; then 190df930be7Sderaadt echo -n ' routed'; routed $routed_flags 191df930be7Sderaadtfi 192df930be7Sderaadt 193df930be7Sderaadt# $name_flags is imported from /etc/netstart; 194df930be7Sderaadt# if $named_flags != NO, named is run. 195df930be7Sderaadtif [ "X${named_flags}" != X"NO" ]; then 196df930be7Sderaadt echo -n ' named'; named $named_flags 197df930be7Sderaadtfi 198df930be7Sderaadt 199df930be7Sderaadt# $rwhod is imported from /etc/netstart; 200df930be7Sderaadt# if $rwhod == YES, rwhod is run. 201df930be7Sderaadtif [ X${rwhod} = X"YES" ]; then 202df930be7Sderaadt echo -n ' rwhod'; rwhod 203df930be7Sderaadtfi 204df930be7Sderaadt 205df930be7Sderaadtecho -n ' printer'; lpd 206df930be7Sderaadt 207df930be7Sderaadt# $sendmail_flags is imported from /etc/netstart; 208df930be7Sderaadt# If $sendmail_flags == NO or /etc/sendmail.cf doesn't exist, then 209df930be7Sderaadt# sendmail isn't run. 210df930be7Sderaadtif [ "X${sendmail_flags}" != X"NO" -a -r /etc/sendmail.cf ]; then 211df930be7Sderaadt echo -n ' sendmail'; sendmail ${sendmail_flags} 212df930be7Sderaadtfi 213df930be7Sderaadt 214df930be7Sderaadtecho -n ' inetd'; inetd 215df930be7Sderaadt 216df930be7Sderaadt# $rarpd_flags is imported from /etc/netstart; 217df930be7Sderaadt# If $rarpd_flags == NO or /etc/ethers doesn't exist, then 218df930be7Sderaadt# rarpd isn't run. 219df930be7Sderaadtif [ "X${rarpd_flags}" != X"NO" -a -r /etc/ethers ]; then 220df930be7Sderaadt echo -n ' rarpd'; rarpd ${rarpd_flags} 221df930be7Sderaadtfi 222df930be7Sderaadt 223df930be7Sderaadt# $bootparamd_flags is imported from /etc/netstart; 224df930be7Sderaadt# If $bootparamd_flags == NO or /etc/bootparams doesn't exist, then 225df930be7Sderaadt# bootparamd isn't run. 226df930be7Sderaadtif [ "X${bootparamd_flags}" != X"NO" -a -r /etc/bootparams ]; then 227df930be7Sderaadt echo -n ' rpc.bootparamd'; rpc.bootparamd ${bootparamd_flags} 228df930be7Sderaadtfi 229df930be7Sderaadt 230df930be7Sderaadt# $rbootd_flags is imported from /etc/netstart; 231df930be7Sderaadt# If $rbootd_flags == NO or /etc/rbootd.conf doesn't exist, then 232df930be7Sderaadt# rbootd isn't run. 233df930be7Sderaadtif [ "X${rbootd_flags}" != X"NO" -a -r /etc/rbootd.conf ]; then 234df930be7Sderaadt echo -n ' rbootd'; rbootd ${rbootd_flags} 235df930be7Sderaadtfi 236df930be7Sderaadt 237df930be7Sderaadtecho '.' 238df930be7Sderaadt 239df930be7Sderaadt. /etc/rc.local 240df930be7Sderaadt 241df930be7Sderaadtdate 242df930be7Sderaadtexit 0 243