aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/sysvinit/sysvinit
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/sysvinit/sysvinit')
-rwxr-xr-xrecipes/sysvinit/sysvinit/angstrom/rc176
-rwxr-xr-xrecipes/sysvinit/sysvinit/angstrom/rcS56
-rwxr-xr-xrecipes/sysvinit/sysvinit/bootlogd.init85
-rw-r--r--recipes/sysvinit/sysvinit/inittab30
-rw-r--r--recipes/sysvinit/sysvinit/mnci/inittab11
-rw-r--r--recipes/sysvinit/sysvinit/need6
-rwxr-xr-xrecipes/sysvinit/sysvinit/openmn/rcS79
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rc108
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rcS9
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rcS-default25
-rw-r--r--recipes/sysvinit/sysvinit/oplinux-uclibc/inittab39
-rw-r--r--recipes/sysvinit/sysvinit/oplinux/inittab39
-rw-r--r--recipes/sysvinit/sysvinit/postinst17
-rw-r--r--recipes/sysvinit/sysvinit/prerm9
-rw-r--r--recipes/sysvinit/sysvinit/provide6
-rwxr-xr-xrecipes/sysvinit/sysvinit/rc102
-rwxr-xr-xrecipes/sysvinit/sysvinit/rcS110
-rw-r--r--recipes/sysvinit/sysvinit/rcS-default25
-rw-r--r--recipes/sysvinit/sysvinit/rt3000/inittab12
-rw-r--r--recipes/sysvinit/sysvinit/slugos/inittab32
-rw-r--r--recipes/sysvinit/sysvinit/slugos/rcS-default30
21 files changed, 1006 insertions, 0 deletions
diff --git a/recipes/sysvinit/sysvinit/angstrom/rc b/recipes/sysvinit/sysvinit/angstrom/rc
new file mode 100755
index 0000000000..30b69ad516
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/angstrom/rc
@@ -0,0 +1,176 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+startup_progress() {
+ step=$(($step + $step_change))
+ if [ "$num_steps" != "0" ]; then
+ progress=$((($step * $progress_size / $num_steps) + $first_step))
+ else
+ progress=$progress_size
+ fi
+ #echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
+ if type psplash-write >/dev/null 2>&1; then
+ TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
+ fi
+}
+
+
+#
+# Start script or program.
+#
+startup() {
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $@..."
+
+ case "$1" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ scriptname=$1
+ shift
+ . $scriptname
+ )
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+ startup_progress
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # Find out where in the progress bar the initramfs got to.
+ PROGRESS_STATE=0
+ #if [ -f /dev/.initramfs/progress_state ]; then
+ # . /dev/.initramfs/progress_state
+ #fi
+
+ # Split the remaining portion of the progress bar into thirds
+ progress_size=$(((100 - $PROGRESS_STATE) / 3))
+
+ case "$runlevel" in
+ 0|6)
+ # Count down from -100 to 0 and use the entire bar
+ first_step=-100
+ progress_size=100
+ step_change=1
+ ;;
+ S)
+ # Begin where the initramfs left off and use 2/3
+ # of the remaining space
+ first_step=$PROGRESS_STATE
+ progress_size=$(($progress_size * 2))
+ step_change=1
+ ;;
+ *)
+ # Begin where rcS left off and use the final 1/3 of
+ # the space (by leaving progress_size unchanged)
+ first_step=$(($progress_size * 2 + $PROGRESS_STATE))
+ step_change=1
+ ;;
+ esac
+
+ num_steps=0
+ for s in /etc/rc$runlevel.d/[SK]*; do
+ case "${s##/etc/rc$runlevel.d/S??}" in
+ gdm|xdm|kdm|reboot|halt)
+ break
+ ;;
+ esac
+ num_steps=$(($num_steps + 1))
+ done
+ step=0
+
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
+
+#Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
+#if [ "x$runlevel" != "xS" ]; then
+# if type psplash-write >/dev/null 2>&1; then
+# TMPDIR=/mnt/.psplash psplash-write "QUIT" || true
+# umount /mnt/.psplash
+# fi
+#fi
diff --git a/recipes/sysvinit/sysvinit/angstrom/rcS b/recipes/sysvinit/sysvinit/angstrom/rcS
new file mode 100755
index 0000000000..90af4149e4
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/angstrom/rcS
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+# Make sure proc is mounted
+#
+[ -d "/proc/1" ] || mount /proc
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Call all parts in order.
+#
+exec /etc/init.d/rc S
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
+
diff --git a/recipes/sysvinit/sysvinit/bootlogd.init b/recipes/sysvinit/sysvinit/bootlogd.init
new file mode 100755
index 0000000000..f8f07a050f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/bootlogd.init
@@ -0,0 +1,85 @@
+#! /bin/sh
+#
+# bootlogd One of the first scripts to be executed. Starts or stops
+# the bootlogd log program. If this script is called as
+# "stop-bootlogd", it will stop the daemon instead of
+# starting it even when called with the "start" argument.
+#
+# Version: @(#)bootlogd 2.85-12 21-Mar-2004 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/sbin/bootlogd
+NAME=bootlogd
+DESC="Bootlog daemon"
+
+test -f $DAEMON || exit 0
+
+[ -r /etc/default/bootlogd ] && . /etc/default/bootlogd
+
+## set -e # not needed
+
+case "$BOOTLOGD_ENABLE" in
+ [Nn]*)
+ exit 0
+ ;;
+esac
+
+STOPPER=
+ACTION="$1"
+case "$0" in
+ *stop-bootlog*)
+ STOPPER=Y
+ if [ "$ACTION" = start ]
+ then
+ ACTION=stop
+ fi
+ ;;
+esac
+
+case "$ACTION" in
+ start)
+ echo -n "Starting $DESC: "
+ if [ -d /proc/1/. ]
+ then
+ umask 027
+ start-stop-daemon --start --quiet \
+ --exec $DAEMON -- -r
+ else
+ $DAEMON -r
+ fi
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --exec $DAEMON
+
+ if [ "$STOPPER" ] && [ -f /var/log/boot ] && \
+ [ -f /var/log/boot~ ]
+ then
+ cd /var/log
+ chgrp adm boot
+ savelog -p -c 5 boot > /dev/null 2>&1
+ mv boot.0 boot
+ mv boot~ boot.0
+ fi
+
+ echo "$NAME."
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop --quiet --exec $DAEMON
+ sleep 1
+ start-stop-daemon --start --quiet --exec $DAEMON
+ echo "$NAME."
+ ;;
+ *)
+ N=${0##*/}
+ N=${N#[SK]??}
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/recipes/sysvinit/sysvinit/inittab b/recipes/sysvinit/sysvinit/inittab
new file mode 100644
index 0000000000..6abbdf4558
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/inittab
@@ -0,0 +1,30 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:5:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
diff --git a/recipes/sysvinit/sysvinit/mnci/inittab b/recipes/sysvinit/sysvinit/mnci/inittab
new file mode 100644
index 0000000000..d2c46a8a78
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/mnci/inittab
@@ -0,0 +1,11 @@
+id:2:initdefault:
+si::sysinit:/etc/init.d/rcS
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+0:2345:respawn:/sbin/getty -L 115200 tts/0
+v1:2345:respawn:/sbin/getty -L 115200 vc/1
diff --git a/recipes/sysvinit/sysvinit/need b/recipes/sysvinit/sysvinit/need
new file mode 100644
index 0000000000..4d84bbeee7
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/need
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# need binary that doesnt do anything, supplied for simpleinit
+# vs sysvinit compatibility for the supplied startup scripts
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/openmn/rcS b/recipes/sysvinit/sysvinit/openmn/rcS
new file mode 100755
index 0000000000..7d7ed02340
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmn/rcS
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Call all parts in order.
+#
+for i in /etc/rcS.d/S??*
+do
+ # Ignore dangling symlinks for now.
+ [ ! -f "$i" ] && continue
+
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+
+ #
+ # Report status based on result code
+ #
+ result=$?
+done
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
diff --git a/recipes/sysvinit/sysvinit/openmoko/rc b/recipes/sysvinit/sysvinit/openmoko/rc
new file mode 100644
index 0000000000..1c2c79b6ae
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rc
@@ -0,0 +1,108 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Start script or program.
+#
+startup() {
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $@..."
+
+ case "$1" in
+ *.sh)
+ # Source shell script for speed.
+ scriptname=$1
+ shift
+ . $scriptname
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
diff --git a/recipes/sysvinit/sysvinit/openmoko/rcS b/recipes/sysvinit/sysvinit/openmoko/rcS
new file mode 100644
index 0000000000..08dca5dc1e
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rcS
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+exec /etc/init.d/rc S
diff --git a/recipes/sysvinit/sysvinit/openmoko/rcS-default b/recipes/sysvinit/sysvinit/openmoko/rcS-default
new file mode 100644
index 0000000000..5bb57ef74f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rcS-default
@@ -0,0 +1,25 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Whether to fsck root on boot
+ENABLE_ROOTFS_FSCK=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set TICKADJ to the correct tick value for this specific machine
+#TICKADJ=10000
+# Enable caching in populate-volatile.sh
+VOLATILE_ENABLE_CACHE=yes
diff --git a/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab b/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab
new file mode 100644
index 0000000000..1bb7c45254
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab
@@ -0,0 +1,39 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+
+1:2345:respawn:/sbin/getty 115200 tty1
+2:23:respawn:/sbin/getty 115200 tty2
+3:23:respawn:/sbin/getty 115200 tty3
+4:23:respawn:/sbin/getty 115200 tty4
+5:23:respawn:/sbin/getty 115200 tty5
+6:23:respawn:/sbin/getty 115200 tty6
+
diff --git a/recipes/sysvinit/sysvinit/oplinux/inittab b/recipes/sysvinit/sysvinit/oplinux/inittab
new file mode 100644
index 0000000000..1bb7c45254
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/oplinux/inittab
@@ -0,0 +1,39 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+
+1:2345:respawn:/sbin/getty 115200 tty1
+2:23:respawn:/sbin/getty 115200 tty2
+3:23:respawn:/sbin/getty 115200 tty3
+4:23:respawn:/sbin/getty 115200 tty4
+5:23:respawn:/sbin/getty 115200 tty5
+6:23:respawn:/sbin/getty 115200 tty6
+
diff --git a/recipes/sysvinit/sysvinit/postinst b/recipes/sysvinit/sysvinit/postinst
new file mode 100644
index 0000000000..b6fe547fa4
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/postinst
@@ -0,0 +1,17 @@
+#!/bin/busybox ash
+
+action="$1"
+oldversion="$2"
+
+umask 022
+
+if [ "$action" != configure ]
+then
+ exit 0
+fi
+
+update-alternatives --install /sbin/init init /sbin/sysvinit 25
+update-alternatives --install /sbin/need need /sbin/need.sysvinit 25
+update-alternatives --install /sbin/provide provide /sbin/provide.sysvinit 25
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/prerm b/recipes/sysvinit/sysvinit/prerm
new file mode 100644
index 0000000000..704a29ffd5
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/prerm
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ "$1" != "upgrade" ]; then
+ update-alternatives --remove need /sbin/need.sysvinit
+ update-alternatives --remove provide /sbin/provide.sysvinit
+ update-alternatives --remove init /sbin/sysvinit
+fi
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/provide b/recipes/sysvinit/sysvinit/provide
new file mode 100644
index 0000000000..c90cf3537b
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/provide
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# provide binary that doesnt do anything, supplied for simpleinit
+# vs sysvinit compatibility for the supplied startup scripts
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/rc b/recipes/sysvinit/sysvinit/rc
new file mode 100755
index 0000000000..fdb0fce887
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rc
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Start script or program.
+#
+startup() {
+ case "$1" in
+ *.sh)
+ sh "$@"
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
+# eof /etc/init.d/rc
diff --git a/recipes/sysvinit/sysvinit/rcS b/recipes/sysvinit/sysvinit/rcS
new file mode 100755
index 0000000000..e7a7e617d0
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rcS
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+# Make sure proc is mounted
+#
+[ -d "/proc/1" ] || mount /proc
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Do we have /proc/progress and set VERBOSE to "no" ?
+# If so, calculate the number of scripts and the incremental step
+#
+if [ "$VERBOSE" = no ]; then
+ if [ -e /proc/progress ]; then
+ set `ls -1 /etc/rc$runlevel.d/S* | wc`
+ numscripts=$1
+ PROGRESS_incstep=`expr 90 / $1`
+ PROGRESS_value=10
+ PROGRESS=yes
+ export PROGRESS_value PROGRESS_incstep
+ fi
+fi
+export VERBOSE PROGRESS
+
+#
+# Call all parts in order.
+#
+for i in /etc/rcS.d/S??*
+do
+ # Ignore dangling symlinks for now.
+ [ ! -f "$i" ] && continue
+
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
+ if [ "$PROGRESS" = yes ]; then
+ export PROGRESS_value=`expr $PROGRESS_value + $PROGRESS_incstep`
+ echo "$PROGRESS_value Starting $i..." >/proc/progress
+ fi
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+
+ #
+ # Report status based on result code
+ #
+ result=$?
+ if [ "$PROGRESS" = yes ]; then
+ if [ "$result" = 0 ]; then
+ echo "=s" >/proc/progress
+ else
+ echo "=f" >/proc/progress
+ fi
+ fi
+done
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
+
diff --git a/recipes/sysvinit/sysvinit/rcS-default b/recipes/sysvinit/sysvinit/rcS-default
new file mode 100644
index 0000000000..7ad3c7bf8f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rcS-default
@@ -0,0 +1,25 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+# UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Whether to fsck root on boot
+ENABLE_ROOTFS_FSCK=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set TICKADJ to the correct tick value for this specific machine
+#TICKADJ=10000
+# Enable caching in populate-volatile.sh
+VOLATILE_ENABLE_CACHE=yes
diff --git a/recipes/sysvinit/sysvinit/rt3000/inittab b/recipes/sysvinit/sysvinit/rt3000/inittab
new file mode 100644
index 0000000000..3cfb5eec6a
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rt3000/inittab
@@ -0,0 +1,12 @@
+id:2:initdefault:
+si::sysinit:/etc/init.d/rcS
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+0:2345:respawn:/sbin/getty -L 115200 tts/0
+2:2345:respawn:/sbin/getty -L 115200 tts/2
+v1:2345:respawn:/sbin/getty -L 115200 vc/1
diff --git a/recipes/sysvinit/sysvinit/slugos/inittab b/recipes/sysvinit/sysvinit/slugos/inittab
new file mode 100644
index 0000000000..a82c1f5449
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/slugos/inittab
@@ -0,0 +1,32 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+ca:123456:ctrlaltdel:/sbin/poweroff
diff --git a/recipes/sysvinit/sysvinit/slugos/rcS-default b/recipes/sysvinit/sysvinit/slugos/rcS-default
new file mode 100644
index 0000000000..8bd6656cb5
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/slugos/rcS-default
@@ -0,0 +1,30 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+# Set to ok if the machine supports SULOGIN, otherwise a
+# boot time failure will be ignored unless the system
+# is known to support a serial port
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+#SlugOS: see the comments in /etc/init.d/hwclock.sh before changing this.
+UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set DOSWAP to "no" if you do not want all swap to automatically be mounted
+DOSWAP=yes
+# Set ROOTFSCK to "yes" to check the root fs automatically on boot
+# WARNING: fsck for the file system must be installed and must work
+# before enabling this option, if not your system will drop to single
+# user (sulogin) if SULOGIN is set to yes or ok!
+ROOTFSCK=no