rcS (1980B)
1 #!/bin/sh 2 exec >/dev/console 2>&1 3 echo "rcS: mounting pseudo-filesystems" 4 mount -t proc proc /proc 2>/dev/null || true 5 mount -t sysfs sys /sys 2>/dev/null || true 6 mount -t devtmpfs devtmpfs /dev 2>/dev/null || true 7 mkdir -p /dev/pts 2>/dev/null || true 8 mount -t devpts devpts /dev/pts -o gid=5,mode=620 2>/dev/null || mount -t devpts devpts /dev/pts 2>/dev/null || true 9 [ -c /dev/ptmx ] || mknod /dev/ptmx c 5 2 2>/dev/null || true 10 chmod 666 /dev/ptmx 2>/dev/null || true 11 mkdir -p /run 2>/dev/null || true 12 if [ -f /etc/hostname ]; then 13 hostname -F /etc/hostname 2>/dev/null || hostname unos 2>/dev/null || true 14 echo "rcS: hostname $(hostname 2>/dev/null || cat /etc/hostname)" 15 fi 16 echo "rcS: bringing up loopback" 17 ip link set lo up 2>/dev/null || ifconfig lo up 2>/dev/null || true 18 echo "rcS: bringing up eth0" 19 ip link set eth0 up 2>&1 | head -1 20 sleep 1 21 # qemu user-mode net: dhcp via udhcpc if available, else static fallback 22 if command -v udhcpc >/dev/null 2>&1; then 23 udhcpc -i eth0 -q 2>&1 || true 24 # fallback if dhcp left no address 25 ip addr show eth0 2>/dev/null | grep -q "inet " || { 26 echo "rcS: dhcp failed, using static 10.0.2.15/24" 27 ip addr add 10.0.2.15/24 dev eth0 2>/dev/null || ifconfig eth0 10.0.2.15 netmask 255.255.255.0 2>/dev/null || true 28 ip route add default via 10.0.2.2 2>/dev/null || route add default gw 10.0.2.2 2>/dev/null || true 29 echo "nameserver 10.0.2.3" > /etc/resolv.conf 2>/dev/null || true 30 } 31 else 32 ip addr add 10.0.2.15/24 dev eth0 2>/dev/null || ifconfig eth0 10.0.2.15 netmask 255.255.255.0 2>/dev/null || true 33 ip link set eth0 up 2>/dev/null || true 34 ip route add default via 10.0.2.2 2>/dev/null || true 35 fi 36 echo "rcS: network ready" 37 ip addr show 2>&1 | head -20 38 # start supervision (runsvdir manages /etc/sv/*) 39 if [ -d /etc/sv ]; then 40 echo "rcS: starting runsvdir" 41 runsvdir /etc/sv & 42 fi 43 if [ -x /etc/sv/tinyssh/run ]; then 44 echo "rcS: tinyssh will be supervised" 45 else 46 echo "rcS: no tinyssh service found" 47 fi