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]) 26248488Scperciva if [ ! -L /dev/dumpdev ]; then 27248487Scperciva return 1 28248487Scperciva fi 29136901Sdes dumpdev=`/bin/realpath /dev/dumpdev` 30136684Sthomas ;; 31124622Smtm esac 3298184Sgordon 33124622Smtm # If there is no crash directory set it now 34124622Smtm case ${dumpdir} in 35124622Smtm '') 36124622Smtm dumpdir='/var/crash' 3798184Sgordon ;; 38124622Smtm [Nn][Oo]) 39124622Smtm dumpdir='NO' 4098184Sgordon ;; 4198184Sgordon esac 42124622Smtm 43136901Sdes if [ ! -c "${dumpdev}" ]; then 44136901Sdes warn "Dump device does not exist. Savecore not run." 45124622Smtm return 1 46124622Smtm fi 47136901Sdes 48136901Sdes if [ ! -d "${dumpdir}" ]; then 49136901Sdes warn "Dump directory does not exist. Savecore not run." 50136901Sdes return 1 51136901Sdes fi 5298184Sgordon return 0 5398184Sgordon} 5498184Sgordon 5598184Sgordonsavecore_start() 5698184Sgordon{ 57180317Smtm local dev 58180317Smtm 59180317Smtm case "${dumpdev}" in 60180317Smtm [Aa][Uu][Tt][Oo]) 61180317Smtm dev= 62180317Smtm ;; 63180317Smtm *) 64180317Smtm dev="${dumpdev}" 65180317Smtm ;; 66180317Smtm esac 67180317Smtm 68244218Spjd if savecore -C "${dev}" >/dev/null; then 69180318Smtm savecore ${savecore_flags} ${dumpdir} ${dumpdev} 70182460Sjhb if checkyesno crashinfo_enable; then 71182460Sjhb ${crashinfo_program} -d ${dumpdir} 72182460Sjhb fi 73254992Sgavin sync 74179962Smtm else 75197947Sdougb check_startmsgs && echo 'No core dumps found.' 76179962Smtm fi 7778344Sobrien} 7878344Sobrien 7978344Sobrienload_rc_config $name 8078344Sobrienrun_rc_command "$1" 81