dumpon revision 150103
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/dumpon 150103 2005-09-13 19:07:02Z rwatson $
4#
5
6# PROVIDE: dumpon
7# REQUIRE: rcconf
8# BEFORE: disks savecore initrandom
9# KEYWORD: nojail
10
11. /etc/rc.subr
12
13name="dumpon"
14start_cmd="dumpon_start"
15stop_cmd="dumpon_stop"
16
17dumpon_try()
18{
19	if /sbin/dumpon -v "${1}" ; then
20		# Make a symlink in devfs for savecore
21		ln -fs "${1}" /dev/dumpdev
22		return 0
23	fi
24	return 1
25}
26
27dumpon_start()
28{
29	# Enable dumpdev so that savecore can see it. Enable it
30	# early so a crash early in the boot process can be caught.
31	#
32	case ${dumpdev} in
33	[Nn][Oo] | '')
34		;;
35	[Aa][Uu][Tt][Oo])
36		dev=$(/bin/kenv -q dumpdev)
37		if [ -n "${dev}" ] ; then
38			dumpon_try "${dev}"
39			return $?
40		fi
41		while read dev mp type more ; do
42			[ "${type}" = "swap" ] || continue
43			[ -c "${dev}" ] || continue
44			dumpon_try "${dev}" 2>/dev/null && return 0
45		done </etc/fstab
46		echo "No suitable dump device was found." 1>&2
47		return 1
48		;;
49	*)
50		dumpon_try "${dumpdev}"
51		;;
52	esac
53}
54
55dumpon_stop()
56{
57	case ${dumpdev} in
58	[Nn][Oo] | '')
59		;;
60	*)
61		rm -f /dev/dumpdev
62		/sbin/dumpon -v off
63		;;
64	esac
65}
66
67load_rc_config $name
68run_rc_command "$1"
69