From 04c4a025bc40aba555f504d3479af4277a79e275 Mon Sep 17 00:00:00 2001 From: Ned Ludd Date: Fri, 9 Mar 2007 20:57:59 +0000 Subject: [PATCH] - posix compliant init.d script from Natanael Copa. bug 170080 Package-Manager: portage-2.1.2_pre1 --- net-misc/asterisk/ChangeLog | 5 +- net-misc/asterisk/files/1.2.0/asterisk.rc6 | 78 +++++++++++----------- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/net-misc/asterisk/ChangeLog b/net-misc/asterisk/ChangeLog index dd7293eab95d..ea640745c2ba 100644 --- a/net-misc/asterisk/ChangeLog +++ b/net-misc/asterisk/ChangeLog @@ -1,6 +1,9 @@ # ChangeLog for net-misc/asterisk # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.146 2007/03/09 20:25:10 rajiv Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.147 2007/03/09 20:57:59 solar Exp $ + + 09 Mar 2007; files/1.2.0/asterisk.rc6: + - posix compliant init.d script from Natanael Copa. bug 170080 *asterisk-1.0.12-r1 (09 Mar 2007) diff --git a/net-misc/asterisk/files/1.2.0/asterisk.rc6 b/net-misc/asterisk/files/1.2.0/asterisk.rc6 index 168be13951a5..4ab433d24686 100755 --- a/net-misc/asterisk/files/1.2.0/asterisk.rc6 +++ b/net-misc/asterisk/files/1.2.0/asterisk.rc6 @@ -1,7 +1,7 @@ #!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.2.0/asterisk.rc6,v 1.2 2006/11/02 15:05:39 mrness Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/files/1.2.0/asterisk.rc6,v 1.3 2007/03/09 20:57:59 solar Exp $ opts="${opts} forcestop reload" @@ -11,12 +11,12 @@ depend() { } 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 @@ -36,18 +36,18 @@ asterisk_run_loop() { ARGS="$(echo "${@}" | sed -e "s:-c\|-f::g")" # mangle yes/no options - ASTERISK_CONSOLE="$(echo ${ASTERISK_CONSOLE} | tr [:lower:] [:upper:])" + 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 @@ asterisk_run_loop() { 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 @@ asterisk_run_loop() { 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 @@ asterisk_run_loop() { 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 @@ asterisk_run_loop() { 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 @@ asterisk_run_loop() { 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 @@ start() { 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 @@ start() { 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 @@ start() { 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 -- 2.26.2