aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-11 16:35:51 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-11 16:35:51 +0000
commitb62b3c7228bb72851a9cec62f8e21032518ce9e0 (patch)
treec6fdd01deca402622f3ebefbf43adbb3aa12c38d
parent46ae94104aef9538fa0e96e478552654b939a979 (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@63905 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--Makefile2
-rw-r--r--contrib/scripts/safe_asterisk22
2 files changed, 19 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index f12baeea9..b987a6fa7 100644
--- a/Makefile
+++ b/Makefile
@@ -419,7 +419,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 48fd14cd7..0464373a7 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
@@ -96,6 +97,11 @@ if [ ! -w ${DUMPDROP} ]; then
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