#!/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