savecore revision 136684
178344Sobrien#!/bin/sh
278344Sobrien#
398184Sgordon# $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $
498184Sgordon# $FreeBSD: head/etc/rc.d/savecore 136684 2004-10-18 23:40:13Z thomas $
578344Sobrien#
678344Sobrien
778344Sobrien# PROVIDE: savecore
878344Sobrien# REQUIRE: syslogd
998184Sgordon# BEFORE:  SERVERS
10136224Smtm# KEYWORD: nojail
1178344Sobrien
1278344Sobrien. /etc/rc.subr
1378344Sobrien
1478344Sobrienname="savecore"
1578344Sobrienstart_cmd="savecore_start"
1698184Sgordonstart_precmd="savecore_prestart"
1778344Sobrienstop_cmd=":"
1878344Sobrien
1998184Sgordonsavecore_prestart()
2078344Sobrien{
2198184Sgordon	#	${DUMPDIR} should be a directory or a symbolic link
2278344Sobrien	#	to the crash directory if core dumps are to be saved.
2378344Sobrien	#
2498184Sgordon	DUMPDIR="${dumpdir:-/var/crash}"
2598184Sgordon
26124622Smtm	# Quit if we have no dump device
27124622Smtm	case ${dumpdev} in
28124622Smtm	[Nn][Oo] | '')
29124622Smtm		debug 'No dump device. Quitting.'
30124622Smtm		return 1
31124622Smtm		;;
32136684Sthomas	[Aa][Uu][Tt][Oo])
33136684Sthomas		dumpdev=/dev/dumpdev
34136684Sthomas		;;
35124622Smtm	esac
3698184Sgordon
37124622Smtm	# If there is no crash directory set it now
38124622Smtm	case ${dumpdir} in
39124622Smtm	'')
40124622Smtm		dumpdir='/var/crash'
4198184Sgordon		;;
42124622Smtm	[Nn][Oo])
43124622Smtm		dumpdir='NO'
4498184Sgordon		;;
4598184Sgordon	esac
46124622Smtm
47124622Smtm	if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
48124622Smtm		warn "Wrong dump device or directory. Savecore not run."
49124622Smtm		return 1
50124622Smtm	fi
5198184Sgordon	return 0
5298184Sgordon}
5398184Sgordon
5498184Sgordonsavecore_start()
5598184Sgordon{
56136684Sthomas	echo "Checking for core dump on ${dumpdev}..."
57136684Sthomas	savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
5878344Sobrien}
5978344Sobrien
6078344Sobrienload_rc_config $name
6178344Sobrienrun_rc_command "$1"
62