rcS 1.7 KB

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