[BACK]Return to rndctl CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc / rc.d

File: [cvs.NetBSD.org] / src / etc / rc.d / rndctl (download)

Revision 1.3, Tue Apr 21 16:08:57 2009 UTC (10 years, 7 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-premerge-20091211, matt-nb8-mediatek-base, matt-nb8-mediatek, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-mips64-premerge-20101231, localcount-20160914, khorben-n900, jym-xensuspend-nbase, jym-xensuspend-base, cherry-xenmp-base, cherry-xenmp, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver, HEAD
Changes since 1.2: +3 -2 lines

Split fsck during boot into two phases. Check the root file system
first, mount root and run the various disk providers. Add swap and
check the remaining file systems after that.
This breaks the dependency cycle for lvm, which needs writeable /dev.
Depend on rndctl in cgd.

#!/bin/sh
#
# $NetBSD: rndctl,v 1.3 2009/04/21 16:08:57 joerg Exp $
#

# PROVIDE: rndctl
# BEFORE:  DISKS ike ipsec sshd
# REQUIRE: wdogctl

$_rc_subr_loaded . /etc/rc.subr

name="rndctl"
rcvar=$name
command="/sbin/${name}"

start_cmd="rndctl_startcmd"

rndctl_startcmd()
{
	# $rndctl_flags can contain multiple semicolon-separated
	# segments in which each segment contains optional flags
	# followed by one or more device or type names.  If none of the
	# -c/-C/-e/-E flags is specified, then "-c -e" is used.  If
	# neither of the -d/-t flags is specified, then "-d" is used.
	#
	# For example, given
	#	rndctl_flags="wd0 wd1; -t tty; -c -t net"
	# we will perform the following commands:
	#	rndctl -c -e -d wd0
	#	rndctl -c -e -d wd1
	#	rndctl -c -e -t tty
	#	rndctl -c -t net

	local args arg flags

	# Split $rndctl_flags on semicolons
	oIFS="$IFS"
	IFS=';'
	set -- $rndctl_flags
	IFS="$oIFS"
	# The outer "for args" loop cycles once per semicolon-separated
	# segment; the inner "for arg" loop cycles once per word in a
	# segment.
	for args in "$@"; do
		#echo >&2 "${name} DEBUG: Parsing segment: $args";
		flags=''
		for arg in ${args}; do
			case "${arg}" in
				-*)
					flags="${flags} ${arg}"
					;;
				*)
					# We have a device or type name.
					# If none of -c/-C/-e/-E flags was
					# specified, add "-c -e".  If neither
					# of -d/-t was specified, add "-d".
					# Then perform the command with the
					# specified device or type name.
					#
					# Note that -d/-t flag must be last.
					#
					case "${flags}" in
					*[cCeE]*) ;;
					*)	flags="-c -e ${flags}" ;;
					esac
					case "${flags}" in
					*[dt]*) ;;
					*)	flags="${flags} -d" ;;
					esac
					#echo >&2 "${name} DEBUG: running:" \
					#    "$command $flags $arg"
					$command ${flags} ${arg}
					;;
			esac
		done
	done
}

load_rc_config $name
run_rc_command "$1"