#!/bin/sh # Modified RunCache script to get automated stacktraces on failures # prefix=/usr/local/squid exec_prefix=${prefix} logdir=${prefix}/logs PATH=${exec_prefix}/bin:/bin:/usr/bin export PATH conf="" if test "$1" ; then conf="-f $1" shift fi cat <${prefix}/etc/stacktrace.gdb handle all pass nostop noprint handle SIGSEGV stop print handle SIGBUS stop print handle SIGABRT stop print break fatal run -NDYd3 $conf bt c bt c bt c bt c bt c bt quit EOF failcount=0 while : ; do echo "Running: squid -NDYd3 $conf >> $logdir/squid.out 2>&1" echo "Startup: `date`" >> $logdir/squid.out start=`date '+%d%H%M%S'` gdb --batch -x ${prefix}/etc/stacktrace.gdb ${prefix}/bin/squid >> $logdir/squid.out 2>&1 stop=`date '+%d%H%M%S'` t=`expr $stop - $start` if test 0 -le $t -a $t -lt 5 ; then failcount=`expr $failcount + 1` else failcount=0 fi if test $failcount -gt 5 ; then echo "DebugCache: EXITING DUE TO REPEATED, FREQUENT FAILURES" >&2 exit 1 fi sleep 10 done