xref: /dragonfly/etc/rc.d/savecore (revision 9c600e7d)
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
15name="savecore"
16start_cmd="savecore_start"
17start_precmd="savecore_prestart"
18stop_cmd=":"
19
20case ${OSTYPE} in
21NetBSD)
22	rcvar=$name
23	;;
24esac
25
26savecore_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
91savecore_start()
92{
93		echo "Checking for core dump..."
94		savecore ${savecore_flags} ${DUMPDIR}
95}
96
97load_rc_config $name
98run_rc_command "$1"
99