res_pjsip_log_forwarder.c: Add CLI "pjsip show buildopts".
[asterisk/asterisk.git] / contrib / init.d / rc.debian.asterisk
index 1a391ab..211737f 100755 (executable)
@@ -50,11 +50,11 @@ if ! [ -d $ASTETCDIR ] ; then
         exit 0
 fi
 
-# Use the LSB standar functions for services management
+# Use the LSB standard functions for services management
 . /lib/lsb/init-functions
 
 # Allow configuration overrides in /etc/default/asterisk
-CONFIG0=`readlink $0`
+CONFIG0=`readlink $0 || :` # readlink returns 1 when something isn't a symlink
 if [ "$CONFIG0" = "" ]; then
        CONFIGFILE=/etc/default/`basename $0`
 else
@@ -66,17 +66,16 @@ case "$1" in
   start)
        # Check if Asterisk is already running.  If it is, then bug out, because
        # starting up Asterisk when Asterisk is already running is very bad.
-       VERSION=`${DAEMON} -rx 'core show version' || ${TRUE}`
+       VERSION=`${DAEMON} -rx 'core show version' 2>/dev/null || ${TRUE}`
        if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                echo "Asterisk is already running.  $0 will exit now."
-               exit 1
+               exit 0
        fi
 
        log_begin_msg "Starting $DESC: $NAME"
        if [ ! -d $ASTVARRUNDIR ]; then
                mkdir -p $ASTVARRUNDIR
        fi
-
        if [ $AST_USER ] ; then
                ASTARGS="-U $AST_USER"
                chown $AST_USER $ASTVARRUNDIR
@@ -101,6 +100,8 @@ case "$1" in
                for i in `seq 1 $VERBOSITY`; do
                        ASTARGS="$ASTARGS -v"
                done
+               # -v implies -f, so we override that implicit specification here
+               ASTARGS="$ASTARGS -F"
        fi
        if [ "x$INTERNALTIMING" = "xyes" ]; then
                ASTARGS="$ASTARGS -I"
@@ -108,13 +109,11 @@ case "$1" in
        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
-               start-stop-daemon --start --oknodo --background --exec $DAEMON -- $ASTARGS
-       else
-               start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS
+       if test "x$COLOR" = "xno" ; then
+               ASTARGS="$ASTARGS -n"
        fi
+       # "start-stop-daemon --oknodo" returns 0 even if Asterisk was already running (as LSB expects):
+       start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS
        log_end_msg $?
        ;;
   stop)
@@ -133,9 +132,12 @@ case "$1" in
        $0 start
        # "restart|force-reload" starts Asterisk and returns 0 even if Asterisk was stopped (as LSB expects).
        ;;
+  status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+       ;;
   *)
        N=/etc/init.d/$NAME
-       echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+       echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
        exit 1
        ;;
 esac