From 44ec0d02a233f5a3490e62dd4018fea432e9594b Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Mon, 27 May 2002 23:15:47 +0000
Subject: [PATCH] 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 0000000000..584e854d28
--- /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 3688af2fd7..3a754088c3 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 0000000000..584e854d28
--- /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
-- 
GitLab