home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / sources / src_tgz / src_tgz~ / src / etc / rc < prev    next >
Encoding:
Text File  |  1996-03-22  |  5.8 KB  |  250 lines

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