From 44ec0d02a233f5a3490e62dd4018fea432e9594b Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Mon, 27 May 2002 23:15:47 +0000 Subject: Version 0.1.12 from FTP git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@452 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- contrib/scripts/safe_asterisk | 47 +++++++++++++++++++++++++++++++++++++++++++ redhat/asterisk.spec | 6 ++++++ safe_asterisk | 47 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100755 contrib/scripts/safe_asterisk create mode 100755 safe_asterisk diff --git a/contrib/scripts/safe_asterisk b/contrib/scripts/safe_asterisk new file mode 100755 index 000000000..584e854d2 --- /dev/null +++ b/contrib/scripts/safe_asterisk @@ -0,0 +1,47 @@ +#!/bin/sh +TTY=9 # TTY (if you want one) for Asterisk to run on +CONSOLE=yes # Whether or not you want a console +NOTIFY= # Who to notify about crashes +# +# Don't fork when running "safely" +# +ASTARGS="-f" +if [ "$TTY" != "" ]; then + ASTARGS="${ASTARGS} -vvv" + if [ "$CONSOLE" != "no" ]; then + ASTARGS="${ASTARGS} -c" + fi +fi + +# +# Let Asterisk dump core +# +ulimit -c unlimited + +while :; do + + if [ "$TTY" != "" ]; then + stty sane < /dev/tty${TTY} + asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY} + else + asterisk ${ASTARGS} + fi + EXITSTATUS=$? + #echo "Asterisk ended with exit status $EXITSTATUS" + if [ "$EXITSTATUS" = "0" ]; then + # Properly shutdown.... + echo "Asterisk shutdown normally." + exit 0 + elif [ $EXITSTATUS -gt 128 ]; then + let EXITSIGNAL=EXITSTATUS-128 + echo "Asterisk exited on signal $EXITSIGNAL." + if [ "$NOTIFY" != "" ]; then + echo "Asterisk exited on signal $EXITSIGNAL. Might want to take a peek." | \ + mail -s "Asterisk Died" $NOTIFY + fi + else + echo "Asterisk died with code $EXITSTATUS. Aborting." + exit 0 + fi + echo "Automatically restarting Asterisk." +done diff --git a/redhat/asterisk.spec b/redhat/asterisk.spec index 3688af2fd..3a754088c 100755 --- a/redhat/asterisk.spec +++ b/redhat/asterisk.spec @@ -53,6 +53,8 @@ ln -s /var/spool/asterisk/vm /var/lib/asterisk/sounds/vm # Asterisk # %attr(0755,root,root) /usr/sbin/asterisk +%attr(0755,root,root) /usr/sbin/safe_asterisk +%attr(0755,root,root) /usr/sbin/astgenkey # # Sound files @@ -64,6 +66,10 @@ ln -s /var/spool/asterisk/vm /var/lib/asterisk/sounds/vm %attr(0644,root,root) /var/lib/asterisk/sounds/digits/*.gsm %attr(0755,root,root) %dir /var/lib/asterisk/images %attr(0644,root,root) /var/lib/asterisk/images/* +%attr(0755,root,root) %dir /var/lib/asterisk/keys +%attr(0644,root,root) /var/lib/asterisk/keys/* +%attr(0755,root,root) %dir /var/lib/asterisk/agi-bin +%attr(0755,root,root) %dir /var/lib/asterisk/agi-bin/* # # Example voicemail files diff --git a/safe_asterisk b/safe_asterisk new file mode 100755 index 000000000..584e854d2 --- /dev/null +++ b/safe_asterisk @@ -0,0 +1,47 @@ +#!/bin/sh +TTY=9 # TTY (if you want one) for Asterisk to run on +CONSOLE=yes # Whether or not you want a console +NOTIFY= # Who to notify about crashes +# +# Don't fork when running "safely" +# +ASTARGS="-f" +if [ "$TTY" != "" ]; then + ASTARGS="${ASTARGS} -vvv" + if [ "$CONSOLE" != "no" ]; then + ASTARGS="${ASTARGS} -c" + fi +fi + +# +# Let Asterisk dump core +# +ulimit -c unlimited + +while :; do + + if [ "$TTY" != "" ]; then + stty sane < /dev/tty${TTY} + asterisk ${ASTARGS} >& /dev/tty${TTY} < /dev/tty${TTY} + else + asterisk ${ASTARGS} + fi + EXITSTATUS=$? + #echo "Asterisk ended with exit status $EXITSTATUS" + if [ "$EXITSTATUS" = "0" ]; then + # Properly shutdown.... + echo "Asterisk shutdown normally." + exit 0 + elif [ $EXITSTATUS -gt 128 ]; then + let EXITSIGNAL=EXITSTATUS-128 + echo "Asterisk exited on signal $EXITSIGNAL." + if [ "$NOTIFY" != "" ]; then + echo "Asterisk exited on signal $EXITSIGNAL. Might want to take a peek." | \ + mail -s "Asterisk Died" $NOTIFY + fi + else + echo "Asterisk died with code $EXITSTATUS. Aborting." + exit 0 + fi + echo "Automatically restarting Asterisk." +done -- cgit v1.2.3