savecore revision 182460
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/savecore 182460 2008-08-29 20:30:30Z jhb $ 4# 5 6# PROVIDE: savecore 7# REQUIRE: syslogd 8# BEFORE: SERVERS 9# KEYWORD: nojail 10 11. /etc/rc.subr 12 13name="savecore" 14start_cmd="savecore_start" 15start_precmd="savecore_prestart" 16stop_cmd=":" 17 18savecore_prestart() 19{ 20 # Quit if we have no dump device 21 case ${dumpdev} in 22 [Nn][Oo] | '') 23 debug 'No dump device. Quitting.' 24 return 1 25 ;; 26 [Aa][Uu][Tt][Oo]) 27 dumpdev=`/bin/realpath /dev/dumpdev` 28 ;; 29 esac 30 31 # If there is no crash directory set it now 32 case ${dumpdir} in 33 '') 34 dumpdir='/var/crash' 35 ;; 36 [Nn][Oo]) 37 dumpdir='NO' 38 ;; 39 esac 40 41 if [ ! -c "${dumpdev}" ]; then 42 warn "Dump device does not exist. Savecore not run." 43 return 1 44 fi 45 46 if [ ! -d "${dumpdir}" ]; then 47 warn "Dump directory does not exist. Savecore not run." 48 return 1 49 fi 50 return 0 51} 52 53savecore_start() 54{ 55 local dev 56 57 case "${dumpdev}" in 58 [Aa][Uu][Tt][Oo]) 59 dev= 60 ;; 61 *) 62 dev="${dumpdev}" 63 ;; 64 esac 65 66 if savecore -C "${dumpdir}" "${dev}" >/dev/null; then 67 savecore ${savecore_flags} ${dumpdir} ${dumpdev} 68 if checkyesno crashinfo_enable; then 69 ${crashinfo_program} -d ${dumpdir} 70 fi 71 else 72 [ -z "${rc_quiet}" ] && echo "No core dumps found" 73 fi 74} 75 76load_rc_config $name 77run_rc_command "$1" 78