1#!/bin/sh 2# 3# $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $ 4# $FreeBSD: src/etc/rc.d/savecore,v 1.3 2002/09/06 16:18:05 gordon Exp $ 5# $DragonFly: src/etc/rc.d/savecore,v 1.1 2003/07/24 06:35:37 dillon Exp $ 6# 7 8# PROVIDE: savecore 9# REQUIRE: syslogd 10# BEFORE: SERVERS 11# KEYWORD: DragonFly FreeBSD NetBSD 12 13. /etc/rc.subr 14 15name="savecore" 16start_cmd="savecore_start" 17start_precmd="savecore_prestart" 18stop_cmd=":" 19 20case ${OSTYPE} in 21NetBSD) 22 rcvar=$name 23 ;; 24esac 25 26savecore_prestart() 27{ 28 # ${DUMPDIR} should be a directory or a symbolic link 29 # to the crash directory if core dumps are to be saved. 30 # 31 DUMPDIR="${dumpdir:-/var/crash}" 32 33 case ${OSTYPE} in 34 DragonFly) 35 # Quit if we have no dumb device 36 case ${dumpdev} in 37 [Nn][Oo] | '') 38 debug 'No dump device. Quitting.' 39 return 1 40 ;; 41 esac 42 # If there is no crash directory set it now 43 case ${dumpdir} in 44 '') 45 dumpdir='/var/crash' 46 ;; 47 [Nn][Oo]) 48 dumpdir='NO' 49 ;; 50 esac 51 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then 52 warn "Wrong dump device or directory. Savecore not run." 53 return 1 54 fi 55 ;; 56 57 FreeBSD) 58 # Quit if we have no dump device 59 case ${dumpdev} in 60 [Nn][Oo] | '') 61 debug 'No dump device. Quitting.' 62 return 1 63 ;; 64 esac 65 66 # If there is no crash directory set it now 67 case ${dumpdir} in 68 '') 69 dumpdir='/var/crash' 70 ;; 71 [Nn][Oo]) 72 dumpdir='NO' 73 ;; 74 esac 75 76 if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then 77 warn "Wrong dump device or directory. Savecore not run." 78 return 1 79 fi 80 ;; 81 NetBSD) 82 if [ ! -d "${dumpdir}" ]; then 83 warn "No /var/crash directory; savecore not run." 84 return 1 85 fi 86 ;; 87 esac 88 return 0 89} 90 91savecore_start() 92{ 93 echo "Checking for core dump..." 94 savecore ${savecore_flags} ${DUMPDIR} 95} 96 97load_rc_config $name 98run_rc_command "$1" 99