⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 safe_asterisk

📁 Asterisk-1.4.4最新内核源代码
💻
字号:
#!/bin/sh# vim:textwidth=80:tabstop=4:shiftwidth=4:smartindent:autoindentCLIARGS="$*"				# Grab any args passed to safe_asteriskTTY=9						# TTY (if you want one) for Asterisk to run onCONSOLE=yes					# Whether or not you want a console#NOTIFY=ben@alkaloid.net	# Who to notify about crashes#EXEC=/path/to/somescript	# Run this command if Asterisk crashesMACHINE=`hostname`			# To specify which machine has crashed when getting the mailDUMPDROP=/tmpSLEEPSECS=4ASTSBINDIR=__ASTERISK_SBIN_DIR__# comment this line out to have this script _not_ kill all mpg123 processes when# asterisk exitsKILLALLMPG123=1# run asterisk with this priorityPRIORITY=0# set system filemax on supported OSes if this variable is set# SYSMAXFILES=262144# set max files open with ulimit. On linux systems, this will be automatically# set to the system's maximum files open devided by two, if not set here.# MAXFILES=32768# since we're going to change priority and open files limits, we need to be# root. if running asterisk as other users, pass that to asterisk on the command# line.# if we're not root, fall back to standard everything.if [ `id -u` != 0 ]then	echo "Ops. I'm not root. Falling back to standard prio and file max." >&2	echo "This is NOT suitable for large systems." >&2	PRIORITY=0else	if `echo $OSTYPE | grep linux 2>&1 > /dev/null `	then		# maximum number of open files is set to the system maximum divided by two if		# MAXFILES is not set.		if [ "$MAXFILES" = "" ]		then			# just check if file-max is readable			if [ -r /proc/sys/fs/file-max ]			then				MAXFILES=$(( `cat /proc/sys/fs/file-max` / 2 ))			fi		fi		SYSCTL_MAXFILES="fs.file-max"	elif `echo $OSTYPE | grep darwin 2>&1 > /dev/null `	then		SYSCTL_MAXFILES="kern.maxfiles"	fi	if [ "$SYSMAXFILES" != "" ]	then		if [ "$SYSCTL_MAXFILES" != "" ]		then			sysctl -w $SYSCTL_MAXFILES=$SYSMAXFILES		fi	fi	# set the process's filemax to whatever set above	ulimit -n $MAXFILESfi## Let Asterisk dump core#ulimit -c unlimited## Don't fork when running "safely"#ASTARGS=""if [ "$TTY" != "" ]; then	if [ -c /dev/tty${TTY} ]; then		TTY=tty${TTY}	elif [ -c /dev/vc/${TTY} ]; then		TTY=vc/${TTY}	else		echo "Cannot find your TTY (${TTY})" >&2		exit 1	fi	ASTARGS="${ASTARGS} -vvvg"	if [ "$CONSOLE" != "no" ]; then		ASTARGS="${ASTARGS} -c"	fifiif [ ! -w ${DUMPDROP} ]; then		echo "Cannot write to ${DUMPDROP}" >&2	exit 1fi## Run scripts to set any environment variables or do any other system-specific setup needed#if [ -d /etc/asterisk/startup.d ]; then	for script in /etc/asterisk/startup.d/*.sh; do		if [ -x ${script} ]; then			source ${script}		fi	donefirun_asterisk(){	while :; do 		if [ "$TTY" != "" ]; then			cd /tmp			stty sane < /dev/${TTY}			nice -n $PRIORITY ${ASTSBINDIR}/asterisk ${CLIARGS} ${ASTARGS} >& /dev/${TTY} < /dev/${TTY}		else			cd /tmp			nice -n $PRIORITY ${ASTSBINDIR}/asterisk ${CLIARGS} ${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 on $MACHINE exited on signal $EXITSIGNAL.  Might want to take a peek." | \				mail -s "Asterisk Died" $NOTIFY			fi			if [ "$EXEC" != "" ]; then				$EXEC			fi			if [ -f /tmp/core ]; then				mv /tmp/core ${DUMPDROP}/core.`hostname`-`date -Iseconds` &			fi		else			if [ "${EXITSTATUS}" = "0" ]; then				echo "Asterisk ended normally.  Aborting."				exit 0			else				echo "Asterisk died with code $EXITSTATUS."				if [ -f /tmp/core ]; then					mv /tmp/core ${DUMPDROP}/core.`hostname`-`date -Iseconds` &				fi			fi		fi		echo "Automatically restarting Asterisk."		sleep $SLEEPSECS		if [ $KILLALLMPG123 ]		then			killall -9 mpg123		fi	done}run_asterisk &

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -