savecore revision 179962
1235537Sgber#!/bin/sh
2235537Sgber#
3235537Sgber# $FreeBSD: head/etc/rc.d/savecore 179962 2008-06-23 20:54:32Z mtm $
4235537Sgber#
5235537Sgber
6235537Sgber# PROVIDE: savecore
7235537Sgber# REQUIRE: syslogd
8235537Sgber# BEFORE:  SERVERS
9235537Sgber# KEYWORD: nojail
10235537Sgber
11235537Sgber. /etc/rc.subr
12235537Sgber
13235537Sgbername="savecore"
14235537Sgberstart_cmd="savecore_start"
15235537Sgberstart_precmd="savecore_prestart"
16235537Sgberstop_cmd=":"
17235537Sgber
18235537Sgbersavecore_prestart()
19235537Sgber{
20235537Sgber	#	${DUMPDIR} should be a directory or a symbolic link
21235537Sgber	#	to the crash directory if core dumps are to be saved.
22235537Sgber	#
23235537Sgber	DUMPDIR="${dumpdir:-/var/crash}"
24235537Sgber
25235537Sgber	# Quit if we have no dump device
26235537Sgber	case ${dumpdev} in
27235537Sgber	[Nn][Oo] | '')
28235537Sgber		debug 'No dump device. Quitting.'
29235537Sgber		return 1
30235537Sgber		;;
31235537Sgber	[Aa][Uu][Tt][Oo])
32235537Sgber		dumpdev=`/bin/realpath /dev/dumpdev`
33235537Sgber		;;
34235537Sgber	esac
35235537Sgber
36235537Sgber	# If there is no crash directory set it now
37235537Sgber	case ${dumpdir} in
38235537Sgber	'')
39235537Sgber		dumpdir='/var/crash'
40235537Sgber		;;
41235537Sgber	[Nn][Oo])
42235537Sgber		dumpdir='NO'
43235537Sgber		;;
44235537Sgber	esac
45235537Sgber
46235537Sgber	if [ ! -c "${dumpdev}" ]; then
47235537Sgber		warn "Dump device does not exist.  Savecore not run."
48235537Sgber		return 1
49235537Sgber	fi
50235537Sgber
51235537Sgber	if [ ! -d "${dumpdir}" ]; then
52235537Sgber		warn "Dump directory does not exist.  Savecore not run."
53235537Sgber		return 1
54235537Sgber	fi
55235537Sgber	return 0
56235537Sgber}
57235537Sgber
58235537Sgbersavecore_start()
59235537Sgber{
60235537Sgber	if savecore -C >/dev/null; then
61235537Sgber		savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
62235537Sgber	else
63235537Sgber		[ -z "${rc_quiet}" ] && echo "No core dumps found"
64235537Sgber	fi
65235537Sgber}
66235537Sgber
67235537Sgberload_rc_config $name
68235537Sgberrun_rc_command "$1"
69235537Sgber