]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - etc/rc.d/savecore
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / etc / rc.d / savecore
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: savecore
7 # REQUIRE: syslogd
8 # BEFORE:  SERVERS
9 # KEYWORD: nojail
10
11 . /etc/rc.subr
12
13 name="savecore"
14 start_cmd="savecore_start"
15 start_precmd="savecore_prestart"
16 stop_cmd=":"
17
18 savecore_prestart()
19 {
20         # Quit if we have no dump device
21         case ${dumpdev} in
22         [Nn][Oo] | '')
23                 debug 'No dump device. Quitting.'
24                 return 1
25                 ;;
26         [Aa][Uu][Tt][Oo])
27                 dumpdev=`/bin/realpath /dev/dumpdev`
28                 ;;
29         esac
30
31         # If there is no crash directory set it now
32         case ${dumpdir} in
33         '')
34                 dumpdir='/var/crash'
35                 ;;
36         [Nn][Oo])
37                 dumpdir='NO'
38                 ;;
39         esac
40
41         if [ ! -c "${dumpdev}" ]; then
42                 warn "Dump device does not exist.  Savecore not run."
43                 return 1
44         fi
45
46         if [ ! -d "${dumpdir}" ]; then
47                 warn "Dump directory does not exist.  Savecore not run."
48                 return 1
49         fi
50         return 0
51 }
52
53 savecore_start()
54 {
55         local dev
56
57         case "${dumpdev}" in
58         [Aa][Uu][Tt][Oo])
59                 dev=
60                 ;;
61         *)
62                 dev="${dumpdev}"
63                 ;;
64         esac
65
66         if savecore -C "${dumpdir}" "${dev}" >/dev/null; then
67                 savecore ${savecore_flags} ${dumpdir} ${dumpdev}
68                 if checkyesno crashinfo_enable; then
69                         ${crashinfo_program} -d ${dumpdir}
70                 fi
71         else
72                 check_startmsgs && echo 'No core dumps found.'
73         fi
74 }
75
76 load_rc_config $name
77 run_rc_command "$1"