Changeset View
Changeset View
Standalone View
Standalone View
head/sbin/init/rc.d/dumpon
Property | Old Value | New Value |
---|---|---|
svn:executable | null | * \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
#!/bin/sh | |||||
# | |||||
# $FreeBSD$ | |||||
# | |||||
# PROVIDE: dumpon | |||||
# BEFORE: disks | |||||
# KEYWORD: nojail | |||||
. /etc/rc.subr | |||||
name="dumpon" | |||||
desc="Dump kernel corefiles from swap to disk" | |||||
start_cmd="dumpon_start" | |||||
stop_cmd="dumpon_stop" | |||||
dumpon_try() | |||||
{ | |||||
local flags | |||||
flags=${dumpon_flags} | |||||
if [ -n "${dumppubkey}" ]; then | |||||
warn "The dumppubkey variable is deprecated. Use dumpon_flags." | |||||
flags="${flags} -k ${dumppubkey}" | |||||
fi | |||||
/sbin/dumpon ${flags} "${1}" | |||||
if [ $? -eq 0 ]; then | |||||
# Make a symlink in devfs for savecore | |||||
ln -fs "${1}" /dev/dumpdev | |||||
return 0 | |||||
fi | |||||
warn "unable to specify $1 as a dump device" | |||||
return 1 | |||||
} | |||||
dumpon_start() | |||||
{ | |||||
# Enable dumpdev so that savecore can see it. Enable it | |||||
# early so a crash early in the boot process can be caught. | |||||
# | |||||
case ${dumpdev} in | |||||
[Nn][Oo] | '') | |||||
;; | |||||
[Aa][Uu][Tt][Oo]) | |||||
dev=$(/bin/kenv -q dumpdev) | |||||
if [ -n "${dev}" ] ; then | |||||
dumpon_try "${dev}" | |||||
return $? | |||||
fi | |||||
while read dev mp type more ; do | |||||
[ "${type}" = "swap" ] || continue | |||||
[ -c "${dev}" ] || continue | |||||
dumpon_try "${dev}" 2>/dev/null && return 0 | |||||
done </etc/fstab | |||||
echo "No suitable dump device was found." 1>&2 | |||||
return 1 | |||||
;; | |||||
*) | |||||
dumpon_try "${dumpdev}" | |||||
;; | |||||
esac | |||||
} | |||||
dumpon_stop() | |||||
{ | |||||
case ${dumpdev} in | |||||
[Nn][Oo] | '') | |||||
;; | |||||
*) | |||||
rm -f /dev/dumpdev | |||||
/sbin/dumpon -v off | |||||
;; | |||||
esac | |||||
} | |||||
load_rc_config $name | |||||
run_rc_command "$1" |