]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - etc/rc.d/savecore
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.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         echo "Checking for core dump on ${dumpdev}..."
56         savecore ${savecore_flags} ${dumpdir} ${dumpdev}
57         if checkyesno crashinfo_enable; then
58                 ${crashinfo_program} -d ${dumpdir}
59         fi
60 }
61
62 load_rc_config $name
63 run_rc_command "$1"