2007-11-23 17:34:11 +05:30
|
|
|
#!/sbin/runscript
|
2008-01-11 17:15:59 +05:30
|
|
|
# Copyright 2007-2008 Roy Marples
|
2007-11-23 17:34:11 +05:30
|
|
|
# All rights reserved
|
|
|
|
|
|
|
|
description="Saves a kernel dump."
|
|
|
|
|
2008-01-11 17:43:46 +05:30
|
|
|
depend()
|
|
|
|
{
|
2007-11-23 17:34:11 +05:30
|
|
|
need checkfs
|
|
|
|
before swap
|
|
|
|
}
|
|
|
|
|
2008-01-11 17:43:46 +05:30
|
|
|
start()
|
|
|
|
{
|
2007-11-23 17:34:11 +05:30
|
|
|
local dump_dir=${dump_dir:-/var/crash}
|
|
|
|
if ! [ -d "${dump_dir}" ]; then
|
|
|
|
mkdir -p "${dump_dir}"
|
|
|
|
chmod 700 "${dump_dir}"
|
|
|
|
fi
|
|
|
|
|
2007-11-28 21:15:03 +05:30
|
|
|
if [ "${RC_UNAME}" = "FreeBSD" ]; then
|
2007-11-23 17:34:11 +05:30
|
|
|
# Don't quote ${dump_device}, so that if it's unset,
|
|
|
|
# savecore will check on the partitions listed in fstab
|
|
|
|
# without errors in the output
|
|
|
|
savecore -C "${dump_dir}" ${dump_device} >/dev/null
|
|
|
|
else
|
|
|
|
ls "${dump_dir}"/bsd* > /dev/null 2>&1
|
|
|
|
fi
|
|
|
|
[ $? = 0 ] || return 0
|
|
|
|
|
|
|
|
local sopts="${dump_dir} ${dump_device}"
|
|
|
|
yesno ${dump_compress} && sopts="-z ${sopts}"
|
|
|
|
ebegin "Saving kernel core dump in ${dump_dir}"
|
|
|
|
savecore ${sopts} >/dev/null
|
|
|
|
eend $?
|
|
|
|
}
|