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