savecore revision 180317
198184Sgordon#!/bin/sh 298184Sgordon# 398184Sgordon# $FreeBSD: head/etc/rc.d/savecore 180317 2008-07-06 07:51:29Z mtm $ 498184Sgordon# 598184Sgordon 698184Sgordon# PROVIDE: savecore 798184Sgordon# REQUIRE: syslogd 8136224Smtm# BEFORE: SERVERS 998184Sgordon# KEYWORD: nojail 1098184Sgordon 1198184Sgordon. /etc/rc.subr 1298184Sgordon 1398184Sgordonname="savecore" 1498184Sgordonstart_cmd="savecore_start" 1598184Sgordonstart_precmd="savecore_prestart" 1698184Sgordonstop_cmd=":" 1798184Sgordon 1898184Sgordonsavecore_prestart() 1998184Sgordon{ 2098184Sgordon # ${DUMPDIR} should be a directory or a symbolic link 2198184Sgordon # to the crash directory if core dumps are to be saved. 2298184Sgordon # 2398184Sgordon DUMPDIR="${dumpdir:-/var/crash}" 2498184Sgordon 25128060Smarkm # Quit if we have no dump device 26128060Smarkm case ${dumpdev} in 2798184Sgordon [Nn][Oo] | '') 2898184Sgordon debug 'No dump device. Quitting.' 29128060Smarkm return 1 30128060Smarkm ;; 31178423Sru [Aa][Uu][Tt][Oo]) 32178423Sru dumpdev=`/bin/realpath /dev/dumpdev` 33128060Smarkm ;; 34128060Smarkm esac 35178423Sru 36178423Sru # If there is no crash directory set it now 37128060Smarkm case ${dumpdir} in 3898184Sgordon '') 39178423Sru dumpdir='/var/crash' 40128060Smarkm ;; 41128060Smarkm [Nn][Oo]) 42178423Sru dumpdir='NO' 43178423Sru ;; 44128060Smarkm esac 4598184Sgordon 46178423Sru if [ ! -c "${dumpdev}" ]; then 47178423Sru warn "Dump device does not exist. Savecore not run." 48128060Smarkm return 1 49178423Sru fi 50178423Sru 51128060Smarkm if [ ! -d "${dumpdir}" ]; then 5298184Sgordon warn "Dump directory does not exist. Savecore not run." 53128060Smarkm return 1 54128060Smarkm fi 55128060Smarkm return 0 56128060Smarkm} 57128060Smarkm 58169924Srsesavecore_start() 59128060Smarkm{ 60128060Smarkm local dev 61128060Smarkm 62128060Smarkm case "${dumpdev}" in 63128060Smarkm [Aa][Uu][Tt][Oo]) 64128060Smarkm dev= 65128060Smarkm ;; 66128060Smarkm *) 67128060Smarkm dev="${dumpdev}" 68128060Smarkm ;; 69128060Smarkm esac 70128060Smarkm 71128060Smarkm if savecore -C "${dumpdir}" "${dev}" >/dev/null; then 72128060Smarkm savecore ${savecore_flags} ${DUMPDIR} ${dumpdev} 73128060Smarkm else 74128060Smarkm [ -z "${rc_quiet}" ] && echo "No core dumps found" 7598184Sgordon fi 7698184Sgordon} 7798184Sgordon 7898184Sgordonload_rc_config $name 7998184Sgordonrun_rc_command "$1" 8098184Sgordon