summaryrefslogtreecommitdiffstats
path: root/source/a/sysvinit-scripts/scripts/rc.sysvinit
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/sysvinit-scripts/scripts/rc.sysvinit')
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.sysvinit58
1 files changed, 58 insertions, 0 deletions
diff --git a/source/a/sysvinit-scripts/scripts/rc.sysvinit b/source/a/sysvinit-scripts/scripts/rc.sysvinit
new file mode 100644
index 000000000..916e59ee4
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.sysvinit
@@ -0,0 +1,58 @@
+#!/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, Slackware 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
+