Index: head/etc/rc.d/savecore =================================================================== --- head/etc/rc.d/savecore (revision 180316) +++ head/etc/rc.d/savecore (revision 180317) @@ -1,68 +1,79 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: savecore # REQUIRE: syslogd # BEFORE: SERVERS # KEYWORD: nojail . /etc/rc.subr name="savecore" start_cmd="savecore_start" start_precmd="savecore_prestart" stop_cmd=":" savecore_prestart() { # ${DUMPDIR} should be a directory or a symbolic link # to the crash directory if core dumps are to be saved. # DUMPDIR="${dumpdir:-/var/crash}" # Quit if we have no dump device case ${dumpdev} in [Nn][Oo] | '') debug 'No dump device. Quitting.' return 1 ;; [Aa][Uu][Tt][Oo]) dumpdev=`/bin/realpath /dev/dumpdev` ;; esac # If there is no crash directory set it now case ${dumpdir} in '') dumpdir='/var/crash' ;; [Nn][Oo]) dumpdir='NO' ;; esac if [ ! -c "${dumpdev}" ]; then warn "Dump device does not exist. Savecore not run." return 1 fi if [ ! -d "${dumpdir}" ]; then warn "Dump directory does not exist. Savecore not run." return 1 fi return 0 } savecore_start() { - if savecore -C >/dev/null; then + local dev + + case "${dumpdev}" in + [Aa][Uu][Tt][Oo]) + dev= + ;; + *) + dev="${dumpdev}" + ;; + esac + + if savecore -C "${dumpdir}" "${dev}" >/dev/null; then savecore ${savecore_flags} ${DUMPDIR} ${dumpdev} else [ -z "${rc_quiet}" ] && echo "No core dumps found" fi } load_rc_config $name run_rc_command "$1"