aboutsummaryrefslogtreecommitdiff
path: root/init.d.BSD/savecore
diff options
context:
space:
mode:
Diffstat (limited to 'init.d.BSD/savecore')
-rwxr-xr-xinit.d.BSD/savecore56
1 files changed, 56 insertions, 0 deletions
diff --git a/init.d.BSD/savecore b/init.d.BSD/savecore
new file mode 100755
index 00000000..8d8577f9
--- /dev/null
+++ b/init.d.BSD/savecore
@@ -0,0 +1,56 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Copyright 2007 Roy Marples
+# All rights reserved
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+description="Saves a kernel dump."
+
+depend() {
+ need checkfs
+ before swap
+}
+
+start() {
+ local dump_dir=${dump_dir:-/var/crash}
+ if ! [ -d "${dump_dir}" ]; then
+ mkdir -p "${dump_dir}"
+ chmod 700 "${dump_dir}"
+ fi
+
+ if [ "${RC_UNAME}" = "FreeBSD" ] ; then
+ # 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 $?
+}