#!/bin/sh
#
# rc.sysvinit This file provides basic compatibility with SystemV style
# startup scripts. The SystemV style init system places start/stop
# scripts for each runlevel into directories such as /etc/rc.d/rc3.d
# (for runlevel 3) instead of starting them from /etc/rc.d/rc.M.
# This makes for a lot more init scripts, and a more complicated
# execution path to follow through if something goes wrong. For
# this reason, Radix has always used the traditional BSD style
# init script layout.
#
# However, many binary packages exist that install SystemV init scripts.
# With rc.sysvinit in place, most well-written startup scripts will work.
# This is primarily intended to support commercial software, though,
# and probably shouldn't be considered bug free.
#
# Written by Patrick Volkerding <volkerdi@slackware.com>, 1999
# from an example by Miquel van Smoorenburg <miquels@cistron.nl>.
# Run an init script:
startup() {
case "$1" in
*.sh)
sh "$@"
;;
*)
"$@"
;;
esac
}
# Set onlcr to avoid staircase effect.
stty onlcr 0>&1
if [ "$runlevel" = "" ]; then
runlevel=$RUNLEVEL
export runlevel
prevlevel=$PREVLEVEL
export prevlevel
fi
# Run kill scripts in the previous runlevel if not "none"
if [ ! "$prevlevel" = "N" ]; then
for script in /etc/rc.d/rc$prevlevel.d/K* ; do
if [ -x $script ]; then
startup $script stop
fi
done
fi
# Now do the startup scripts:
for script in /etc/rc.d/rc$runlevel.d/S* ; do
if [ -x $script ]; then
startup $script start
fi
done