From 1f27b5a4c9f5c823da260257d452fb933926d0b7 Mon Sep 17 00:00:00 2001 From: tilghman Date: Thu, 28 Feb 2008 21:56:54 +0000 Subject: Update init script for LSB compat (closes issue #9843) Reported by: ibc Patches: rc.debian.asterisk.patch uploaded by ibc (license 211) Tested by: paravoid git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@105113 f38db490-d61c-443f-a65b-d21fe96a405b --- contrib/init.d/rc.debian.asterisk | 45 ++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/contrib/init.d/rc.debian.asterisk b/contrib/init.d/rc.debian.asterisk index 3926346d4..5e50eb793 100755 --- a/contrib/init.d/rc.debian.asterisk +++ b/contrib/init.d/rc.debian.asterisk @@ -1,15 +1,17 @@ #! /bin/sh # $Id$ # -# asterisk start the asterisk PBX +# Mon Jun 04 2007 IƱaki Baz Castillo +# - Eliminated SAFE_ASTERISK since it doesn't work as LSB script (it could require a independent "safe_asterisk" init script). +# - Load and use the standar "/lib/lsb/init-functions". +# - Addded "--oknodo" to "start-stop-daemon" for compatibility with LSB: +# http://www.linux-foundation.org/spec/refspecs/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html # # Thu Nov 17 2005 Gregory Boehnlein -# - Updated Version to 1.3 # - Reversed behavior of LD_ASSUME_KERNEL=2.4.1 # - Added detailed failure messages # # Sun Jul 18 2004 Gregory Boehnlein -# - Updated Version to 1.2 # - Added test for safe_asterisk # - Changed "stop gracefully" to "stop now" # - Added support for -U and -G command line options @@ -21,9 +23,6 @@ DESC="Asterisk PBX" # Full path to asterisk binary DAEMON=/usr/sbin/asterisk -# Full path to safe_asterisk script -SAFE_ASTERISK=/usr/sbin/safe_asterisk - # Uncomment this ONLY if you know what you are doing. # export LD_ASSUME_KERNEL=2.4.1 @@ -35,8 +34,10 @@ SAFE_ASTERISK=/usr/sbin/safe_asterisk #AST_USER="asterisk" #AST_GROUP="asterisk" +set -e + if ! [ -x $DAEMON ] ; then - echo "ERROR: /usr/sbin/asterisk not found" + echo "ERROR: $DAEMON not found" exit 0 fi @@ -45,35 +46,37 @@ if ! [ -d /etc/asterisk ] ; then exit 0 fi -set -e +# Use the LSB standar functions for services management +. /lib/lsb/init-functions case "$1" in start) - echo -n "Starting $DESC: " - if [ -f $SAFE_ASTERISK ] ; then - DAEMON=$SAFE_ASTERISK - fi + log_begin_msg "Starting $DESC: $NAME" if [ $AST_USER ] ; then ASTARGS="-U $AST_USER" fi if [ $AST_GROUP ] ; then - ASTARGS="`echo $ASTARGS` -G $AST_GROUP" + ASTARGS="$ASTARGS -G $AST_GROUP" fi - start-stop-daemon --start --exec $DAEMON -- $ASTARGS - echo "$NAME." + # "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) - echo -n "Stopping $DESC: " - $DAEMON -rx 'stop now' > /dev/null 2> /dev/null && echo -n "$NAME" - echo "." - exit 0 + log_begin_msg "Stopping $DESC: $NAME" + # "start-stop-daemon --oknodo" returns 0 even if Asterisk was already stopped (as LSB expects): + start-stop-daemon --stop --oknodo --exec $DAEMON + log_end_msg $? ;; reload) echo "Reloading $DESC configuration files." $DAEMON -rx 'reload' > /dev/null 2> /dev/null ;; restart|force-reload) - $DAEMON -rx 'restart gracefully' > /dev/null 2> /dev/null && echo -n "$NAME" + $0 stop + sleep 2 # It needs some time to really be stopped. + $0 start + # "restart|force-reload" starts Asterisk and returns 0 even if Asterisk was stopped (as LSB expects). ;; *) N=/etc/init.d/$NAME @@ -81,5 +84,3 @@ case "$1" in exit 1 ;; esac - -exit 0 -- cgit v1.2.3