rcS 1.7 KB

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