[room] halt

Ivan Petrov =?iso-8859-1?q?pravo_=CE=C1_hnet=2Eru?=
Сб Авг 23 21:06:26 MSD 2008


Denis Kirienko пишет:
> Ivan Petrov пишет:
unlevel сначала выполняются все KILL-скрипты,
> потом все START-скрипты.
> 
> Соответственно, файл нужно было назвать K00monitor, а не E00monitor.

Назвал K00amonitor
Но не помогло. При включени выясняется, что интернет сессия открыта по 
прежнему.


> Можете посмотреть на содержимое файла /etc/rc.d/rc, именно он эти 
> скрипты запускает. А его в свою очередь запускает init при переходе на 
> новый runlevel так, как это указано в inittab. Все просто!

Просто-то просто, но ничего в этом файле не пойму:
#!/bin/sh
#
# rc            This file is responsible for starting/stopping
#               services when the runlevel changes.
#
# Original Author:
#               Miquel van Smoorenburg, <miquels на drinkel.nl.mugnet.org>
#

WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

# Find out what the current and what the previous runlevel are.
argv1="$1"
set `/sbin/runlevel`
runlevel="$2"
previous="$1"
export runlevel previous

# Get first argument. Set new runlevel to this argument.
[ -z "$argv1" ] || runlevel="$argv1"

# Initialize bootsplash subsystem.
splash_init

# See if we want to be in user confirmation mode.
CONFIRM=
if [ "$previous" = "N" ]; then
	splash_update start

	if [ -f /var/run/confirm ] || grep -iwqs confirm /proc/cmdline; then
		rm -f /var/run/confirm
		CONFIRM=yes
		echo $"Entering interactive startup"
	else
		echo $"Entering non-interactive startup"
	fi
fi

# Is there an rc directory for this new runlevel?
[ -d "/etc/rc.d/rc$runlevel.d" ] || exit 0

check_script()
{
	# Check if the script is there.
	[ -x "$1" ] || return 1

	# Don't run *.rpm* and *~ scripts.
	[ "${1%.rpm*}" = "$1" -a "${1%\~}" = "$1" ] || return 1

	return 0
}

# First, run the KILL scripts.
for i in "/etc/rc.d/rc$runlevel.d"/K*; do
	check_script "$i" || continue

	subsys=${i#/etc/rc.d/rc$runlevel.d/K??}

	splash_update "$subsys"

	# Check if the subsystem is already up.
	[ -f "/var/lock/subsys/$subsys" -o -f "/var/lock/subsys/$subsys.init" ] 
|| continue

	# Bring the subsystem down.
	if egrep -qs '(action|stop_daemon|killproc|msg_) ' "$i"; then
		"$i" stop
	else
		action "Stopping $subsys:" "$i" stop
	fi
done

# Now run the START scripts.
for i in "/etc/rc.d/rc$runlevel.d"/S*; do
	check_script "$i" || continue

	subsys=${i#/etc/rc.d/rc$runlevel.d/S??}

	splash_update "$subsys"

	# Check if the subsystem is already up.
	[ -f "/var/lock/subsys/$subsys" -o -f "/var/lock/subsys/$subsys.init" ] 
&& continue

	# If we're in confirmation mode, get user confirmation.
	if [ -n "$CONFIRM" ]; then
		confirm "$subsys"
		case $? in
			0) : ;;
			2) CONFIRM= ;;
			*) continue ;;
		esac
	fi

	if [ "$subsys" = halt -o "$subsys" = reboot -o "$subsys" = single -o 
"$subsys" = local ] \
		|| egrep -qs '(action|daemon|msg_) ' "$i"; then
		"$i" start
	else
		action "Starting $subsys:" "$i" start
	fi
done

if [ "$runlevel" != 0 -a "$runlevel" != 6 ]; then
	splash_update stop
fi




Подробная информация о списке рассылки smoke-room