* Add this nice filesystem testing tool that I've recently
[dragonfly.git] / etc / rc.d / savecore
1 #!/bin/sh
2 #
3 # $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $
4 # $FreeBSD: src/etc/rc.d/savecore,v 1.3 2002/09/06 16:18:05 gordon Exp $
5 # $DragonFly: src/etc/rc.d/savecore,v 1.1 2003/07/24 06:35:37 dillon Exp $
6 #
7
8 # PROVIDE: savecore
9 # REQUIRE: syslogd
10 # BEFORE:  SERVERS
11 # KEYWORD: DragonFly FreeBSD NetBSD
12
13 . /etc/rc.subr
14
15 name="savecore"
16 start_cmd="savecore_start"
17 start_precmd="savecore_prestart"
18 stop_cmd=":"
19
20 case ${OSTYPE} in
21 NetBSD)
22         rcvar=$name
23         ;;
24 esac
25
26 savecore_prestart()
27 {
28         #       ${DUMPDIR} should be a directory or a symbolic link
29         #       to the crash directory if core dumps are to be saved.
30         #
31         DUMPDIR="${dumpdir:-/var/crash}"
32
33         case ${OSTYPE} in
34         DragonFly)
35                 # Quit if we have no dumb device
36                  case ${dumpdev} in
37                 [Nn][Oo] | '')
38                         debug 'No dump device. Quitting.'
39                         return 1
40                         ;;
41                 esac
42                 # If there is no crash directory set it now
43                 case ${dumpdir} in
44                 '')
45                         dumpdir='/var/crash'
46                         ;;
47                 [Nn][Oo])
48                         dumpdir='NO'
49                         ;;
50                 esac
51                 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
52                         warn "Wrong dump device or directory. Savecore not run."
53                         return 1
54                 fi
55                 ;;
56
57         FreeBSD)
58                 # Quit if we have no dump device
59                 case ${dumpdev} in
60                 [Nn][Oo] | '')
61                         debug 'No dump device. Quitting.'
62                         return 1
63                         ;;
64                 esac
65
66                 # If there is no crash directory set it now
67                 case ${dumpdir} in
68                 '')
69                         dumpdir='/var/crash'
70                         ;;
71                 [Nn][Oo])
72                         dumpdir='NO'
73                         ;;
74                 esac
75
76                 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
77                         warn "Wrong dump device or directory. Savecore not run."
78                         return 1
79                 fi
80                 ;;
81         NetBSD)
82                 if [ ! -d "${dumpdir}" ]; then
83                         warn "No /var/crash directory; savecore not run."
84                         return 1
85                 fi
86                 ;;
87         esac
88         return 0
89 }
90
91 savecore_start()
92 {
93                 echo "Checking for core dump..."
94                 savecore ${savecore_flags} ${DUMPDIR}
95 }
96
97 load_rc_config $name
98 run_rc_command "$1"