read -p "WARNING: Taking a core dump of the running asterisk instance will suspend call processing while the dump is saved. Do you wish to continue? (y/N) " answer
unset pid
# Simplest case first...
pids=$(pgrep -f "$asterisk_bin")
pidcount=$(echo $pids | wc -w)
if [ $pidcount -eq 0 ] ; then
>&2 echo "Asterisk is not running"
exit 1
fi
# Single process, great.
if [ $pidcount -eq 1 ] ; then
pid=$pids
echo "Found a single asterisk instance running as process $pid"
fi
# More than 1 asterisk process running
if [ x"$pid" = x ] ; then
# More than 1 process running, let's try asking asterisk for it's
# pidfile
pidfile=$("$asterisk_bin" -rx "core show settings" 2>/dev/null | sed -n -r -e "s/^\s*pid file:\s+(.*)/\1/gpi")
pidfile=$("$asterisk_bin" -C "$astetcconf" -rx "core show settings" 2>/dev/null | sed -n -r -e "s/^\s*pid file:\s+(.*)/\1/gpi")
if [ x"$pidfile" != x -a -f "$pidfile" ] ; then
pid=$(cat "$pidfile")
echo "Found pidfile $pidfile the hard way with process $pid"
break
fi
fi
done
if [ $mounted_proc -eq 1 ] ; then
echo "Unmounting /proc"
umount /proc
fi
fi
if [ x"$pid" = x ] ; then
>&2 echo "Can't determine pid of the running asterisk instance"
exit 1
fi
if $RUNNING ; then
answer=Y
else
read -p "WARNING: Taking a core dump of the running asterisk instance will suspend call processing while the dump is saved. Do you wish to continue? (y/N) " answer