savecore revision 124616
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 124616 2004-01-17 10:16:38Z 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
19103019Sgordoncase ${OSTYPE} in
2098184SgordonNetBSD)
2198184Sgordon	rcvar=$name
2298184Sgordon	;;
2398184Sgordonesac
2498184Sgordon
2598184Sgordonsavecore_prestart()
2678344Sobrien{
2798184Sgordon	#	${DUMPDIR} should be a directory or a symbolic link
2878344Sobrien	#	to the crash directory if core dumps are to be saved.
2978344Sobrien	#
3098184Sgordon	DUMPDIR="${dumpdir:-/var/crash}"
3198184Sgordon
32103019Sgordon	case ${OSTYPE} in
3398184Sgordon	FreeBSD)
3498184Sgordon		# Quit if we have no dump device
3598184Sgordon		case ${dumpdev} in
3698184Sgordon		[Nn][Oo] | '')
3798184Sgordon			debug 'No dump device. Quitting.'
3898184Sgordon			return 1
3998184Sgordon			;;
4098184Sgordon		esac
4198184Sgordon
4298184Sgordon		# If there is no crash directory set it now
4398184Sgordon		case ${dumpdir} in
4498184Sgordon		'')
4598184Sgordon			dumpdir='/var/crash'
4698184Sgordon			;;
4798184Sgordon		[Nn][Oo])
4898184Sgordon			dumpdir='NO'
4998184Sgordon			;;
5098184Sgordon		esac
5198184Sgordon
5298184Sgordon		if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
5398184Sgordon			warn "Wrong dump device or directory. Savecore not run."
5498184Sgordon			return 1
5598184Sgordon		fi
5698184Sgordon		;;
5798184Sgordon	NetBSD)
5898184Sgordon		if [ ! -d "${dumpdir}" ]; then
5998184Sgordon			warn "No /var/crash directory; savecore not run."
6098184Sgordon			return 1
6198184Sgordon		fi
6298184Sgordon		;;
6398184Sgordon	esac
6498184Sgordon	return 0
6598184Sgordon}
6698184Sgordon
6798184Sgordonsavecore_start()
6898184Sgordon{
6978344Sobrien		echo "Checking for core dump..."
7098184Sgordon		savecore ${savecore_flags} ${DUMPDIR}
7178344Sobrien}
7278344Sobrien
7378344Sobrienload_rc_config $name
7478344Sobrienrun_rc_command "$1"
75