xref: /dragonfly/etc/rc.d/savecore (revision 4caa7869)
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.4 2003/12/14 19:13:15 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			dumpdev=
40			return 0
41			;;
42		esac
43		# If there is no crash directory set it now
44		case ${dumpdir} in
45		'')
46			dumpdir='/var/crash'
47			;;
48		[Nn][Oo])
49			dumpdir='NO'
50			;;
51		esac
52		if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
53			warn "Wrong dump device or directory. Savecore not run."
54			dumpdev=
55			return 0
56		fi
57		;;
58	FreeBSD)
59		# Quit if we have no dump device
60		case ${dumpdev} in
61		[Nn][Oo] | '')
62			debug 'No dump device. Quitting.'
63			dumpdev=
64			return 0
65			;;
66		esac
67
68		# If there is no crash directory set it now
69		case ${dumpdir} in
70		'')
71			dumpdir='/var/crash'
72			;;
73		[Nn][Oo])
74			dumpdir='NO'
75			;;
76		esac
77
78		if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
79			warn "Wrong dump device or directory. Savecore not run."
80			dumpdev=
81			return 0
82		fi
83		;;
84	NetBSD)
85		if [ ! -d "${dumpdir}" ]; then
86			warn "No /var/crash directory; savecore not run."
87			dumpdev=
88			return 0
89		fi
90		;;
91	esac
92	return 0
93}
94
95savecore_start()
96{
97	if [ X$dumpdev != X ]; then
98		echo "Checking for core dump..."
99		savecore ${savecore_flags} ${DUMPDIR}
100		return ${RC_CONFIGURED}
101	fi
102}
103
104load_rc_config $name
105run_rc_command "$1"
106