diff -ruN data.orig/etc/init.d/asterisk data/etc/init.d/asterisk --- data.orig/etc/init.d/asterisk 2006-12-20 10:13:39 +0000 +++ data/etc/init.d/asterisk 2007-03-09 13:17:05 +0000 @@ -11,12 +11,12 @@ } is_running() { - if [[ -z "$(pidof asterisk)" ]]; then + if [ -z "$(pidof asterisk)" ]; then return 1 else PID="$(cat /var/run/asterisk/asterisk.pid)" for x in $(pidof asterisk); do - if [[ "${x}" = "${PID}" ]]; then + if [ "${x}" = "${PID}" ]; then return 0 fi done @@ -38,16 +38,16 @@ # mangle yes/no options ASTERISK_CONSOLE="$(echo ${ASTERISK_CONSOLE} | tr [:lower:] [:upper:])" - if [[ -n "${ASTERISK_CORE_SIZE}" ]] && - [[ "${ASTERISK_CORE_SIZE}" != "0" ]]; then + if [ -n "${ASTERISK_CORE_SIZE}" ] && + [ "${ASTERISK_CORE_SIZE}" != "0" ]; then ulimit -c ${ASTERISK_CORE_SIZE} - if [[ -n "${ASTERISK_CORE_DIR}" ]] && \ - [[ ! -d "${ASTERISK_CORE_DIR}" ]] + if [ -n "${ASTERISK_CORE_DIR}" ] && \ + [ ! -d "${ASTERISK_CORE_DIR}" ] then mkdir -m750 -p "${ASTERISK_CORE_DIR}" - if [[ -n "${ASTERISK_USER}" ]]; then + if [ -n "${ASTERISK_USER}" ]; then chown -R "${ASTERISK_USER}" "${ASTERISK_CORE_DIR}" fi fi @@ -58,18 +58,18 @@ echo " Core dump location : ${ASTERISK_CORE_DIR}" fi - if [[ -n "${ASTERISK_MAX_FD}" ]]; then + if [ -n "${ASTERISK_MAX_FD}" ]; then ulimit -n ${ASTERISK_MAX_FD} echo " Max open filedescriptors : ${ASTERISK_MAX_FD}" fi - if [[ -n "${ASTERISK_NICE}" ]]; then + if [ -n "${ASTERISK_NICE}" ]; then echo " Nice level : ${ASTERISK_NICE}" NICE="/bin/nice -n ${ASTERISK_NICE} --" fi - if [[ -n "${ASTERISK_NOTIFY_EMAIL}" ]]; then - if [[ -x /usr/sbin/sendmail ]]; then + if [ -n "${ASTERISK_NOTIFY_EMAIL}" ]; then + if [ -x /usr/sbin/sendmail ]; then echo " Email notifications go to : ${ASTERISK_NOTIFY_EMAIL}" else echo " Notifications disabled, /usr/sbin/sendmail doesn't exist or is not executable!" @@ -77,20 +77,20 @@ fi fi - if [[ -n "${ASTERISK_TTY}" ]]; then + if [ -n "${ASTERISK_TTY}" ]; then for x in ${ASTERISK_TTY} \ /dev/tty${ASTERISK_TTY} \ /dev/vc/${ASTERISK_TTY} do - if [[ -c "${x}" ]]; then + if [ -c "${x}" ]; then TTY="${x}" fi done - [[ -n "${TTY}" ]] && \ + [ -n "${TTY}" ] && \ echo " Messages are sent to : ${TTY}" fi - if [[ "${ASTERISK_CONSOLE}" = "YES" ]] && [[ -n "${TTY}" ]]; then + if [ "${ASTERISK_CONSOLE}" = "YES" ] && [ -n "${TTY}" ]; then echo " Starting Asterisk console : ${ASTERISK_CONSOLE}" OPTS="${OPTS} -c" fi @@ -99,7 +99,7 @@ while :; do - if [[ -n "${TTY}" ]]; then + if [ -n "${TTY}" ]; then /usr/bin/stty -F ${TTY} sane ${NICE} /usr/sbin/asterisk ${OPTS} >${TTY} 2>&1 <${TTY} result=$? @@ -108,30 +108,30 @@ result=$? fi - if [[ $result -eq 0 ]]; then + if [ $result -eq 0 ]; then echo "Asterisk terminated normally" break else - if [[ $result -gt 128 ]]; then + if [ $result -gt 128 ]; then signal=$((result - 128)) MSG="Asterisk terminated with Signal: $signal" CORE_TARGET="core-$(date "+%Y%m%d-%h%M%s")" local CORE_DUMPED=0 - if [[ -f "${ASTERISK_CORE_DIR}/core" ]]; then + if [ -f "${ASTERISK_CORE_DIR}/core" ]; then mv "${ASTERISK_CORE_DIR}/core" \ "${ASTERISK_CORE_DIR}/${CORE_TARGET}" CORE_DUMPED=1 - elif [[ -f "${ASTERISK_CORE_DIR}/core.${PID}" ]]; then + elif [ -f "${ASTERISK_CORE_DIR}/core.${PID}" ]; then mv "${ASTERISK_CORE_DIR}/core.${PID}" \ "${ASTERISK_CORE_DIR}/${CORE_TARGET}" CORE_DUMPED=1 fi - [[ $CORE_DUMPED -eq 1 ]] && \ + [ $CORE_DUMPED -eq 1 ] && \ MSG="${MSG}\n\rCore dumped: ${ASTERISK_CORE_DIR}/${CORE_TARGET}" else MSG="Asterisk terminated with return code: $result" @@ -143,13 +143,13 @@ done fi - [[ -n "${TTY}" ]] \ + [ -n "${TTY}" ] \ && echo "${MSG}" >${TTY} \ || echo "${MSG}" - if [[ -n "${ASTERISK_NOTIFY_EMAIL}" ]] && \ - [[ -x /usr/sbin/sendmail ]]; then + if [ -n "${ASTERISK_NOTIFY_EMAIL}" ] && \ + [ -x /usr/sbin/sendmail ]; then echo -e -n "Subject: Asterisk crashed\n\r${MSG}\n\r" |\ /usr/sbin/sendmail "${ASTERISK_NOTIFY_EMAIL}" fi @@ -163,9 +163,9 @@ local OPTS USER GROUP PID local tmp x - if [[ -n "${ASTERISK_NICE}" ]]; then - if [[ ${ASTERISK_NICE} -ge -20 ]] && \ - [[ ${ASTERISK_NICE} -le 19 ]]; then + if [ -n "${ASTERISK_NICE}" ]; then + if [ ${ASTERISK_NICE} -ge -20 ] && \ + [ ${ASTERISK_NICE} -le 19 ]; then OPTS="--nicelevel ${ASTERISK_NICE}" else eerror "Nice value must be between -20 and 19" @@ -173,13 +173,13 @@ fi fi - if [[ -n "${ASTERISK_USER}" ]]; then - USER=${ASTERISK_USER/:*/} + if [ -n "${ASTERISK_USER}" ]; then + USER=$(echo $ASTERISK_USER | sed 's/:.*//') GROUP=$(echo $ASTERISK_USER | awk -F: '/.*:.*/ { print $2 }') - if [[ -n "${USER}" ]]; then + if [ -n "${USER}" ]; then ASTERISK_OPTS="${ASTERISK_OPTS} -U ${USER}" fi - if [[ -n "${GROUP}" ]]; then + if [ -n "${GROUP}" ]; then ASTERISK_OPTS="${ASTERISK_OPTS} -G ${GROUP}" GROUP=":${GROUP}" # make it look nice... fi @@ -188,18 +188,20 @@ ebegin "Starting asterisk PBX (as root)" fi - if [[ "$(echo ${ASTERISK_WRAPPER} | tr [:upper:] [:lower:])" != "yes" ]]; then + if [ "$(echo ${ASTERISK_WRAPPER} | tr [:upper:] [:lower:])" != "yes" ]; then start-stop-daemon --start --exec /usr/sbin/asterisk \ ${OPTS} -- ${ASTERISK_OPTS} + result=$? else asterisk_run_loop ${ASTERISK_OPTS} 2>/dev/null & + result=$? fi - if [[ $result -eq 0 ]]; then + if [ $result -eq 0 ]; then # 2 seconds should be enough for asterisk to start - sleep 2 - - result=$(is_running) + sleep 2 + is_running + result=$? fi eend $result