savecore revision 124622
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 124622 2004-01-17 10:59:43Z mtm $
578344Sobrien#
678344Sobrien
778344Sobrien# PROVIDE: savecore
878344Sobrien# REQUIRE: syslogd
998184Sgordon# BEFORE:  SERVERS
10124616Smtm# KEYWORD: FreeBSD
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		;;
32124622Smtm	esac
3398184Sgordon
34124622Smtm	# If there is no crash directory set it now
35124622Smtm	case ${dumpdir} in
36124622Smtm	'')
37124622Smtm		dumpdir='/var/crash'
3898184Sgordon		;;
39124622Smtm	[Nn][Oo])
40124622Smtm		dumpdir='NO'
4198184Sgordon		;;
4298184Sgordon	esac
43124622Smtm
44124622Smtm	if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
45124622Smtm		warn "Wrong dump device or directory. Savecore not run."
46124622Smtm		return 1
47124622Smtm	fi
4898184Sgordon	return 0
4998184Sgordon}
5098184Sgordon
5198184Sgordonsavecore_start()
5298184Sgordon{
5378344Sobrien		echo "Checking for core dump..."
5498184Sgordon		savecore ${savecore_flags} ${DUMPDIR}
5578344Sobrien}
5678344Sobrien
5778344Sobrienload_rc_config $name
5878344Sobrienrun_rc_command "$1"
59