rcS 1.8 KB

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