Permit more options in the Makefile as to startup options
authorTilghman Lesher <tilghman@meg.abyt.es>
Mon, 11 Jan 2010 23:00:55 +0000 (23:00 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Mon, 11 Jan 2010 23:00:55 +0000 (23:00 +0000)
(closes issue #16454)
 Reported by: syspert
 Patches:
       20091228__issue16454__3.diff.txt uploaded by tilghman (license 14)
 Tested by: syspert

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@239231 65c4cc65-6c06-0410-ace0-fbb531ad65f3

Makefile
contrib/init.d/rc.debian.asterisk
contrib/init.d/rc.mandriva.asterisk
contrib/init.d/rc.redhat.asterisk
contrib/init.d/rc.suse.asterisk

index 82d4187..b4b948e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -820,10 +820,12 @@ config:
                if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
                        cat contrib/init.d/rc.redhat.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\
                        chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
+                       if [ ! -f /etc/sysconfig/asterisk ]; then install -m 644 contrib/init.d/etc_default_asterisk /etc/sysconfig/asterisk ; fi ;\
                        if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
                elif [ -f /etc/debian_version ]; then \
                        cat contrib/init.d/rc.debian.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
                        chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
+                       if [ ! -f /etc/default/asterisk ]; then install -m 644 contrib/init.d/etc_default_asterisk /etc/default/asterisk ; fi ;\
                        if [ -z "$(DESTDIR)" ]; then /usr/sbin/update-rc.d asterisk defaults 50 91; fi; \
                elif [ -f /etc/gentoo-release ]; then \
                        cat contrib/init.d/rc.gentoo.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
@@ -832,10 +834,12 @@ config:
                elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
                        cat contrib/init.d/rc.mandriva.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\
                        chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
+                       if [ ! -f /etc/sysconfig/asterisk ]; then install -m 644 contrib/init.d/etc_default_asterisk /etc/sysconfig/asterisk ; fi ;\
                        if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
                elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
                        cat contrib/init.d/rc.suse.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
                        chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
+                       if [ ! -f /etc/sysconfig/asterisk ]; then install -m 644 contrib/init.d/etc_default_asterisk /etc/sysconfig/asterisk ; fi ;\
                        if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
                elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
                        cat contrib/init.d/rc.archlinux.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/asterisk ;\
index 045a8ce..22f6f97 100755 (executable)
@@ -38,21 +38,6 @@ TRUE=/bin/true
 # Description:         the Asterisk Open Source PBX
 ### END INIT INFO
 
-# Uncomment this ONLY if you know what you are doing.
-# export LD_ASSUME_KERNEL=2.4.1
-
-# Uncomment the following and set them to the user/groups that you
-# want to run Asterisk as. NOTE: this requires substantial work to
-# be sure that Asterisk's environment has permission to write the
-# files required  for  its  operation, including logs, its comm
-# socket, the asterisk database, etc.
-#AST_USER="asterisk"
-#AST_GROUP="asterisk"
-
-# If you DON'T want Asterisk to start up with terminal colors, comment
-# this out.
-COLOR=yes
-
 set -e
 
 if ! [ -x $DAEMON ] ; then
@@ -68,6 +53,15 @@ fi
 # Use the LSB standar functions for services management
 . /lib/lsb/init-functions
 
+# Allow configuration overrides in /etc/default/asterisk
+CONFIG0=`readlink $0`
+if [ "$CONFIG0" = "" ]; then
+       CONFIGFILE=/etc/default/`basename $0`
+else
+       CONFIGFILE=/etc/default/`basename $CONFIG0`
+fi
+[ -r $CONFIGFILE ] && . $CONFIGFILE
+
 case "$1" in
   start)
        # Check if Asterisk is already running.  If it is, then bug out, because
@@ -91,6 +85,29 @@ case "$1" in
                ASTARGS="$ASTARGS -G $AST_GROUP"
                chgrp $AST_GROUP $ASTVARRUNDIR
        fi
+       if [ $ALTCONF ]; then
+               ASTARGS="$ASTARGS -C \"$ALTCONF\""
+       fi
+       if [ "x$COREDUMP" = "xyes" ]; then
+               ASTARGS="$ASTARGS -g"
+       fi
+       if [ "0$MAXLOAD" -gt "0" ]; then
+               ASTARGS="$ASTARGS -L $MAXLOAD"
+       fi
+       if [ "0$MAXCALLS" -gt "0" ]; then
+               ASTARGS="$ASTARGS -M $MAXCALLS"
+       fi
+       if [ "0$VERBOSITY" -gt "0" ]; then
+               for i in `seq 1 $VERBOSITY`; do
+                       ASTARGS="$ASTARGS -v"
+               done
+       fi
+       if [ "x$INTERNALTIMING" = "xyes" ]; then
+               ASTARGS="$ASTARGS -I"
+       fi
+       if [ "x$TEMPRECORDINGLOCATION" = "xyes" -o "x$TMPRECORDINGLOCATION" = "xyes" ]; then
+               ASTARGS="$ASTARGS -t"
+       fi
        # "start-stop-daemon --oknodo" returns 0 even if Asterisk was already running (as LSB expects):
        if test "x$COLOR" = "xyes" ; then
                export TERM=linux
index 1e036f0..48cd4c5 100755 (executable)
@@ -37,7 +37,7 @@ else
 fi
 
 # Put overrides in /etc/sysconfig/asterisk
-[ -f $CONFIGFILE ] && . $CONFIGFILE
+[ -r $CONFIGFILE ] && . $CONFIGFILE
 
 LD_LIBRARY_PATH=$OPENH323DIR/lib:$PWLIBDIR/lib
 export OPENH323DIR PWLIBDIR LD_LIBRARY_PATH
index 5391c7b..df61e77 100755 (executable)
 # Installation directory
 AST_SBIN=/usr/sbin
 
-# Uncomment the following and set them to the user/groups that you
-# want to run Asterisk as. NOTE: this requires substantial work to
-# be sure that Asterisk's environment has permission to write the
-# files required  for  its  operation, including logs, its comm
-# socket, the asterisk database, etc.
-#AST_USER="asterisk"
-#AST_GROUP="asterisk"
-
 # Source function library.
 . /etc/rc.d/init.d/functions
 
@@ -47,9 +39,6 @@ if ! [ -d $AST_CONFIG ] ; then
        exit 0
 fi
 
-# Uncomment this ONLY if you know what you are doing.
-# export LD_ASSUME_KERNEL=2.4.1
-
 # Full path to asterisk binary
 DAEMON=$AST_SBIN/asterisk
 
@@ -63,7 +52,7 @@ if [ "$CONFIG0" = "" ]; then
 else
        CONFIGFILE=/etc/sysconfig/`basename $CONFIG0`
 fi
-[ -x $CONFIGFILE ] && . $CONFIGFILE
+[ -r $CONFIGFILE ] && . $CONFIGFILE
 
 RETVAL=0
 
@@ -89,8 +78,35 @@ start() {
        fi
        if [ $AST_CONFIG ]; then
                ASTARGS="$ASTARGS -C $AST_CONFIG/asterisk.conf"
+       elif [ $ALTCONF ]; then
+               ASTARGS="$ASTARGS -C $ALTCONF"
+       fi
+       if [ "x$COREDUMP" = "xyes" ]; then
+               ASTARGS="$ASTARGS -g"
+       fi
+       if [ "0$MAXLOAD" -gt "0" ]; then
+               ASTARGS="$ASTARGS -L $MAXLOAD"
+       fi
+       if [ "0$MAXCALLS" -gt "0" ]; then
+               ASTARGS="$ASTARGS -M $MAXCALLS"
+       fi
+       if [ "0$VERBOSITY" -gt "0" ]; then
+               for i in `seq 1 $VERBOSITY`; do
+                       ASTARGS="$ASTARGS -v"
+               done
+       fi
+       if [ "x$INTERNALTIMING" = "xyes" ]; then
+               ASTARGS="$ASTARGS -I"
+       fi
+       if [ "x$TEMPRECORDINGLOCATION" = "xyes" -o "x$TMPRECORDINGLOCATION" = "xyes" ]; then
+               ASTARGS="$ASTARGS -t"
+       fi
+       if [ "x$COLOR" = "xyes" ]; then
+               export TERM=linux
+               daemon sh -c "$DAEMON $ASTARGS -c" >/dev/null </dev/null 2>&1 &
+       else
+               daemon $DAEMON $ASTARGS
        fi
-       daemon $DAEMON $ASTARGS
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
        echo
index 54b6720..e4976bb 100755 (executable)
@@ -59,6 +59,15 @@ SAFE_ASTERISK=/usr/sbin/safe_asterisk
 #AST_USER="asterisk"
 #AST_GROUP="asterisk"
 
+# Allow configuration overrides in /etc/sysconfig/asterisk
+CONFIG0=`readlink $0`
+if [ "$CONFIG0" = "" ]; then
+       CONFIGFILE=/etc/sysconfig/`basename $0`
+else
+       CONFIGFILE=/etc/sysconfig/`basename $CONFIG0`
+fi
+[ -r $CONFIGFILE ] && . $CONFIGFILE
+
 RETVAL=0
 
 start() {
@@ -82,7 +91,35 @@ start() {
        if [ $AST_GROUP ] ; then
                ASTARGS="`echo $ASTARGS` -G $AST_GROUP"
        fi
-       $DAEMON $ASTARGS
+       if [ $ALTCONF ]; then
+               ASTARGS="$ASTARGS -C $ALTCONF"
+       fi
+       if [ "x$COREDUMP" = "xyes" ]; then
+               ASTARGS="$ASTARGS -g"
+       fi
+       if [ "0$MAXLOAD" -gt "0" ]; then
+               ASTARGS="$ASTARGS -L $MAXLOAD"
+       fi
+       if [ "0$MAXCALLS" -gt "0" ]; then
+               ASTARGS="$ASTARGS -M $MAXCALLS"
+       fi
+       if [ "$VERBOSITY" -gt "0" ]; then
+               for i in `seq 1 $VERBOSITY`; do
+                       ASTARGS="$ASTARGS -v"
+               done
+       fi
+       if [ "x$INTERNALTIMING" = "xyes" ]; then
+               ASTARGS="$ASTARGS -I"
+       fi
+       if [ "x$TEMPRECORDINGLOCATION" = "xyes" -o "x$TMPRECORDINGLOCATION" = "xyes" ]; then
+               ASTARGS="$ASTARGS -t"
+       fi
+       if [ "x$COLOR" = "xyes" ]; then
+               export TERM=linux
+               sh -c "$DAEMON $ASTARGS -c" >/dev/null </dev/null 2>&1 &
+       else
+               $DAEMON $ASTARGS
+       fi
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
        echo