178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD$ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: savecore 7208307Sdougb# REQUIRE: dumpon ddb syslogd 8136224Smtm# KEYWORD: nojail 978344Sobrien 1078344Sobrien. /etc/rc.subr 1178344Sobrien 1278344Sobrienname="savecore" 1378344Sobrienstart_cmd="savecore_start" 1498184Sgordonstart_precmd="savecore_prestart" 1578344Sobrienstop_cmd=":" 1678344Sobrien 1798184Sgordonsavecore_prestart() 1878344Sobrien{ 19124622Smtm # Quit if we have no dump device 20124622Smtm case ${dumpdev} in 21124622Smtm [Nn][Oo] | '') 22124622Smtm debug 'No dump device. Quitting.' 23124622Smtm return 1 24124622Smtm ;; 25136684Sthomas [Aa][Uu][Tt][Oo]) 26136901Sdes dumpdev=`/bin/realpath /dev/dumpdev` 27136684Sthomas ;; 28124622Smtm esac 2998184Sgordon 30124622Smtm # If there is no crash directory set it now 31124622Smtm case ${dumpdir} in 32124622Smtm '') 33124622Smtm dumpdir='/var/crash' 3498184Sgordon ;; 35124622Smtm [Nn][Oo]) 36124622Smtm dumpdir='NO' 3798184Sgordon ;; 3898184Sgordon esac 39124622Smtm 40136901Sdes if [ ! -c "${dumpdev}" ]; then 41136901Sdes warn "Dump device does not exist. Savecore not run." 42124622Smtm return 1 43124622Smtm fi 44136901Sdes 45136901Sdes if [ ! -d "${dumpdir}" ]; then 46136901Sdes warn "Dump directory does not exist. Savecore not run." 47136901Sdes return 1 48136901Sdes fi 4998184Sgordon return 0 5098184Sgordon} 5198184Sgordon 5298184Sgordonsavecore_start() 5398184Sgordon{ 54180317Smtm local dev 55180317Smtm 56180317Smtm case "${dumpdev}" in 57180317Smtm [Aa][Uu][Tt][Oo]) 58180317Smtm dev= 59180317Smtm ;; 60180317Smtm *) 61180317Smtm dev="${dumpdev}" 62180317Smtm ;; 63180317Smtm esac 64180317Smtm 65180317Smtm if savecore -C "${dumpdir}" "${dev}" >/dev/null; then 66180318Smtm savecore ${savecore_flags} ${dumpdir} ${dumpdev} 67182460Sjhb if checkyesno crashinfo_enable; then 68182460Sjhb ${crashinfo_program} -d ${dumpdir} 69182460Sjhb fi 70179962Smtm else 71197947Sdougb check_startmsgs && echo 'No core dumps found.' 72179962Smtm fi 7378344Sobrien} 7478344Sobrien 7578344Sobrienload_rc_config $name 7678344Sobrienrun_rc_command "$1" 77