rcS 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/bin/sh
  2. export PATH=/bin:/sbin:/usr/bin:/usr/sbin
  3. # disable kernel messages
  4. if [ -f /proc/sys/kernel/printk ];then
  5. echo 0 > /proc/sys/kernel/printk
  6. fi
  7. ln -s /proc/self/fd/0 /dev/stdin
  8. ln -s /proc/self/fd/1 /dev/stdout
  9. ln -s /proc/self/fd/2 /dev/stderr
  10. ln -s /proc/self/fd /dev/fd
  11. : ${rcquiet=0}
  12. if [ $rcquiet -ne 1 ];then
  13. echo "System initialization ..."
  14. fi
  15. # create some useful directories in tmpfs
  16. mkdir -p /var/log
  17. mkdir -p /var/run
  18. mkdir -p /var/tmp
  19. mkdir -p /var/lock
  20. touch /var/log/lastlog
  21. touch /var/log/wtmp
  22. # start dynamic device node management
  23. [ -f /etc/init.d/rcdev ] && . /etc/init.d/rcdev
  24. # seed some random
  25. cat /etc/.rnd >/dev/urandom 2>&1
  26. # setup cfgfs
  27. [ -x /sbin/cfgfs ] && {
  28. cfgfs setup
  29. mount -o remount,ro /
  30. }
  31. # remount /tmp with smaller size
  32. size=$(cat /etc/tmpfs 2>/dev/null)
  33. [ -z $size ] && size=2048
  34. mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp
  35. HOSTNAME=
  36. [[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname)
  37. HOSTNAME=${HOSTNAME%%.*}
  38. echo ${HOSTNAME:=openadk} >/proc/sys/kernel/hostname
  39. chown 0:0 /tmp; chmod 1777 /tmp
  40. if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then
  41. . /etc/rc.conf
  42. unset rcquiet
  43. rcquiet=0
  44. else
  45. unset rcquiet
  46. rcquiet=1
  47. fi
  48. {
  49. grep '^#INIT ' /etc/init.d/* | \
  50. sort -nk2 | \
  51. while read line; do
  52. rcenabled=NO
  53. rcname=${line%%:*}
  54. rcname=${rcname##*/}
  55. test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}'
  56. test x"$rcenabled" = x"NO" || echo -n "Starting ${rcname}... "
  57. sh ${line%%:*} autostart
  58. rc=$?
  59. case $rcenabled:$rc in
  60. (NO:*)
  61. ;;
  62. (*:0)
  63. echo done.
  64. ;;
  65. (*:*)
  66. echo "failed ($rc)."
  67. ;;
  68. esac
  69. done
  70. } |tee /dev/stderr |logger -p 6 -t ''
  71. if [ $rcquiet -ne 1 ]; then
  72. if [ -f /etc/rc.netinfo ]; then
  73. . /etc/rc.netinfo
  74. fi
  75. fi