savecore revision 98184
1281SN/A#!/bin/sh
2281SN/A#
3281SN/A# $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $
4281SN/A# $FreeBSD: head/etc/rc.d/savecore 98184 2002-06-13 22:14:37Z gordon $
5281SN/A#
6281SN/A
7281SN/A# PROVIDE: savecore
8281SN/A# REQUIRE: syslogd
9281SN/A# BEFORE:  SERVERS
10281SN/A# KEYWORD: FreeBSD NetBSD
11281SN/A
12281SN/A. /etc/rc.subr
13281SN/A
14281SN/Aname="savecore"
15281SN/Astart_cmd="savecore_start"
16281SN/Astart_precmd="savecore_prestart"
17281SN/Astop_cmd=":"
18281SN/A
19281SN/Acase `${CMD_OSTYPE}` in
20281SN/ANetBSD)
21281SN/A	rcvar=$name
22281SN/A	;;
23281SN/Aesac
24281SN/A
25281SN/Asavecore_prestart()
26281SN/A{
27281SN/A	#	${DUMPDIR} should be a directory or a symbolic link
28281SN/A	#	to the crash directory if core dumps are to be saved.
29281SN/A	#
30605SN/A	DUMPDIR="${dumpdir:-/var/crash}"
31605SN/A
32281SN/A	case `${CMD_OSTYPE}` in
33281SN/A	FreeBSD)
34281SN/A		# Quit if we have no dump device
351197Saefimov		case ${dumpdev} in
361197Saefimov		[Nn][Oo] | '')
37281SN/A			debug 'No dump device. Quitting.'
38281SN/A			return 1
39598SN/A			;;
40281SN/A		esac
41281SN/A
42281SN/A		# If there is no crash directory set it now
43281SN/A		case ${dumpdir} in
44281SN/A		'')
45281SN/A			dumpdir='/var/crash'
46281SN/A			;;
47281SN/A		[Nn][Oo])
48281SN/A			dumpdir='NO'
49281SN/A			;;
50281SN/A		esac
51281SN/A
52281SN/A		if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
53281SN/A			warn "Wrong dump device or directory. Savecore not run."
54281SN/A			return 1
55281SN/A		fi
56281SN/A		;;
57281SN/A	NetBSD)
58281SN/A		if [ ! -d "${dumpdir}" ]; then
59281SN/A			warn "No /var/crash directory; savecore not run."
60281SN/A			return 1
61281SN/A		fi
62281SN/A		;;
63281SN/A	esac
64281SN/A	return 0
65281SN/A}
66281SN/A
67281SN/Asavecore_start()
68281SN/A{
69281SN/A		echo "Checking for core dump..."
70281SN/A		savecore ${savecore_flags} ${DUMPDIR}
71281SN/A}
72281SN/A
73281SN/Aload_rc_config $name
74281SN/Arun_rc_command "$1"
75281SN/A