From a4f5985b8ced6e8f471a1e8c9f1de2815ce78689 Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
Date: Fri, 11 May 2007 16:37:16 +0000
Subject: [PATCH] Merged revisions 63905 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r63905 | tilghman | 2007-05-11 11:35:51 -0500 (Fri, 11 May 2007) | 10 lines

Merged revisions 63903 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r63903 | tilghman | 2007-05-11 11:31:03 -0500 (Fri, 11 May 2007) | 2 lines

Issue 9121 - fixups for safe_asterisk script

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@63906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile                      |  2 +-
 contrib/scripts/safe_asterisk | 22 ++++++++++++++++++----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index b2535a67cc..8799c0745d 100644
--- a/Makefile
+++ b/Makefile
@@ -427,7 +427,7 @@ bininstall: _all
 	$(INSTALL) -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
 	$(INSTALL) -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
 	if [ ! -f $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ]; then \
-		cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' > $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ;\
+		cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ;\
 		chmod 755 $(DESTDIR)$(ASTSBINDIR)/safe_asterisk;\
 	fi
 	$(INSTALL) -d $(DESTDIR)$(ASTHEADERDIR)
diff --git a/contrib/scripts/safe_asterisk b/contrib/scripts/safe_asterisk
index 48fd14cd7f..0464373a71 100644
--- a/contrib/scripts/safe_asterisk
+++ b/contrib/scripts/safe_asterisk
@@ -10,6 +10,7 @@ MACHINE=`hostname`			# To specify which machine has crashed when getting the mai
 DUMPDROP=/tmp
 SLEEPSECS=4
 ASTSBINDIR=__ASTERISK_SBIN_DIR__
+ASTPIDFILE=__ASTERISK_VARRUN_DIR__/asterisk.pid
 
 # comment this line out to have this script _not_ kill all mpg123 processes when
 # asterisk exits
@@ -95,6 +96,11 @@ if [ ! -w ${DUMPDROP} ]; then
 	exit 1
 fi
 
+#
+# Don't die if stdout/stderr can't be written to
+#
+trap '' SIGPIPE
+
 #
 # Run scripts to set any environment variables or do any other system-specific setup needed
 #
@@ -114,10 +120,10 @@ run_asterisk()
 		if [ "$TTY" != "" ]; then
 			cd /tmp
 			stty sane < /dev/${TTY}
-			nice -n $PRIORITY ${ASTSBINDIR}/asterisk ${CLIARGS} ${ASTARGS} >& /dev/${TTY} < /dev/${TTY}
+			nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f ${CLIARGS} ${ASTARGS} >& /dev/${TTY} < /dev/${TTY}
 		else
 			cd /tmp
-			nice -n $PRIORITY ${ASTSBINDIR}/asterisk ${CLIARGS} ${ASTARGS}
+			nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f ${CLIARGS} ${ASTARGS}
 		fi
 		EXITSTATUS=$?
 		echo "Asterisk ended with exit status $EXITSTATUS"
@@ -135,7 +141,11 @@ run_asterisk()
 			if [ "$EXEC" != "" ]; then
 				$EXEC
 			fi
-			if [ -f /tmp/core ]; then
+
+			PID=`cat ${ASTPIDFILE}`
+			if [ -f /tmp/core.${PID} ]; then
+				mv /tmp/core.${PID} ${DUMPDROP}/core.`hostname`-`date -Iseconds` &
+			elif [ -f /tmp/core ]; then
 				mv /tmp/core ${DUMPDROP}/core.`hostname`-`date -Iseconds` &
 			fi
 		else
@@ -144,7 +154,11 @@ run_asterisk()
 				exit 0
 			else
 				echo "Asterisk died with code $EXITSTATUS."
-				if [ -f /tmp/core ]; then
+
+				PID=`cat ${ASTPIDFILE}`
+				if [ -f /tmp/core.${PID} ]; then
+					mv /tmp/core.${PID} ${DUMPDROP}/core.`hostname`-`date -Iseconds` &
+				elif [ -f /tmp/core ]; then
 					mv /tmp/core ${DUMPDROP}/core.`hostname`-`date -Iseconds` &
 				fi
 			fi
-- 
GitLab