#!/bin/sh # # single Script for sedding up administrative/rescue shell. # # chkconfig: 1 00 00 # description: This file is executed by init when it goes into runlevel \ # 1, which is the administrative state. It kills all \ # deamons and then puts the system into single user mode. \ # Note that the file systems are kept mounted. \ # # Author: Miquel van Smoorenburg, # # Source function library. . /etc/rc.d/init.d/functions case "$1" in stop*) exit 0 ;; start*) # Kill all processes. [ "${BASH+bash}" = bash ] && enable kill run_cmd "Sending all processes the TERM signal" killall5 -15 sleep 5 run_cmd "Sending all processes the KILL signal" killall5 -9 rm -f /var/lock/subsys/* >/dev/null 2>&1 # this looks nicer [ -x /usr/bin/clear ] && /usr/bin/clear # make sure modprobe is working if [ -f /proc/sys/kernel/modprobe ]; then sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1 fi # If they want to run something in single user mode, might as well run it... for i in /etc/rc.d/rc1.d/S[0-9][0-9]*; do # Check if the script is there. [ ! -f $i ] && continue # Don't run [KS]??foo.{rpmsave,rpmorig} scripts [ "${i%.rpmsave}" != "${i}" ] && continue [ "${i%.rpmorig}" != "${i}" ] && continue [ "${i%.rpmnew}" != "${i}" ] && continue [ "$i" = "/etc/rc.d/rc1.d/S00single" ] && continue $i start done # Now go to the single user level. show "Telling INIT to go to single user mode"; ok exec init -t1 S ;; esac