123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #!/bin/sh
- ########################################################################
- # Begin $rc_base/init.d/rc
- #
- # Description : Main Run Level Control Script
- #
- # Authors : Gerard Beekmans - gerard@linuxfromscratch.org
- #
- # Version : 00.00
- #
- # Notes :
- #
- ########################################################################
- . /etc/sysconfig/rc
- . ${rc_functions}
- # This sets a few default terminal options.
- stty sane
- # These 3 signals will not cause our script to exit
- trap "" INT QUIT TSTP
- [ "${1}" != "" ] && runlevel=${1}
- if [ "${runlevel}" = "" ]; then
- echo "Usage: ${0} <runlevel>" >&2
- exit 1
- fi
- previous=${PREVLEVEL}
- [ "${previous}" = "" ] && previous=N
- if [ ! -d ${rc_base}/rc${runlevel}.d ]; then
- boot_mesg "${rc_base}/rc${runlevel}.d does not exist." ${WARNING}
- boot_mesg_flush
- exit 1
- fi
- # Attempt to stop all service started by previous runlevel,
- # and killed in this runlevel
- if [ "${previous}" != "N" ]; then
- for i in $(ls -v ${rc_base}/rc${runlevel}.d/K* 2> /dev/null)
- do
- check_script_status
- suffix=${i#$rc_base/rc$runlevel.d/K[0-9][0-9]}
- prev_start=$rc_base/rc$previous.d/S[0-9][0-9]$suffix
- sysinit_start=$rc_base/rcsysinit.d/S[0-9][0-9]$suffix
- if [ "${runlevel}" != "0" ] && [ "${runlevel}" != "6" ]; then
- if [ ! -f ${prev_start} ] && [ ! -f ${sysinit_start} ]; then
- boot_mesg -n "WARNING:\n\n${i} can't be" ${WARNING}
- boot_mesg -n " executed because it was not"
- boot_mesg -n " not started in the previous"
- boot_mesg -n " runlevel (${previous})."
- boot_mesg "" ${NORMAL}
- boot_mesg_flush
- continue
- fi
- fi
- ${i} stop
- error_value=${?}
- if [ "${error_value}" != "0" ]; then
- print_error_msg
- fi
- done
- fi
- #Start all functions in this runlevel
- for i in $( ls -v ${rc_base}/rc${runlevel}.d/S* 2> /dev/null)
- do
- if [ "${previous}" != "N" ]; then
- suffix=${i#$rc_base/rc$runlevel.d/S[0-9][0-9]}
- stop=$rc_base/rc$runlevel.d/K[0-9][0-9]$suffix
- prev_start=$rc_base/rc$previous.d/S[0-9][0-9]$suffix
- [ -f ${prev_start} ] && [ ! -f ${stop} ] && continue
- fi
- check_script_status
- case ${runlevel} in
- 0|6)
- ${i} stop
- ;;
- *)
- ${i} start
- ;;
- esac
- error_value=${?}
- if [ "${error_value}" != "0" ]; then
- print_error_msg
- fi
- done
- # End $rc_base/init.d/rc
|