https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r337115 | lmadsen | 2011-09-20 17:18:25 -0500 (Tue, 20 Sep 2011) | 7 lines Update RedHat Init script to work with Heartbeat. The current RedHat init script was not LSB compatible. This change will make it LSB compatible so that it can work correctly with Heartbeat. (Closes issue ASTERISK-18253) Reported by: c0rnoTa ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@337117 65c4cc65-6c06-0410-ace0-fbb531ad65f3
179 lines
4 KiB
Bash
Executable file
179 lines
4 KiB
Bash
Executable file
#!/bin/sh
|
|
# $Id$
|
|
#
|
|
# asterisk Starts, Stops and Reloads Asterisk.
|
|
#
|
|
# chkconfig: 2345 90 60
|
|
# description: Asterisk PBX and telephony daemon.
|
|
# processname: asterisk
|
|
# pidfile: __ASTERISK_VARRUN_DIR__/asterisk.pid
|
|
#
|
|
# Thu Nov 17 2005 Gregory Boehnlein <damin@nacs.net>
|
|
# - Updated Version to 1.3
|
|
# - Reversed behavior of LD_ASSUME_KERNEL=2.4.1
|
|
# - Added detailed failure messages
|
|
#
|
|
# Sun Jul 18 2004 Gregory Boehnlein <damin@nacs.net>
|
|
# - Updated Version to 1.2
|
|
# - Added test for safe_asterisk
|
|
# - Verified SIGTERM issued by "killproc" ensures "stop gracefully"
|
|
# - Added support for -U and -G command line options
|
|
# - Modified "reload" to call asterisk -rx 'reload'
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: asterisk
|
|
# Required-Start: $network $syslog $named $local_fs $remote_fs
|
|
# Required-Stop: $network $syslog $named $local_fs $remote_fs
|
|
# Should-Start: dahdi misdn lcr wanrouter mysql postgresql
|
|
# Should-Stop: dahdi misdn lcr wanrouter mysql postgresql
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Asterisk PBX
|
|
# Description: the Asterisk Open Source PBX
|
|
### END INIT INFO
|
|
|
|
# Use this option to specify a different configuration directory
|
|
#AST_CONFIG=__ASTERISK_ETC_DIR__
|
|
|
|
# Installation directory
|
|
AST_SBIN=__ASTERISK_SBIN_DIR__
|
|
|
|
# Source function library.
|
|
. /etc/rc.d/init.d/functions
|
|
|
|
if ! [ -x $AST_SBIN/asterisk ] ; then
|
|
echo "ERROR: $AST_SBIN/asterisk not found"
|
|
exit 0
|
|
fi
|
|
|
|
if ! [ -d $AST_CONFIG ] ; then
|
|
echo "ERROR: $AST_CONFIG directory not found"
|
|
exit 0
|
|
fi
|
|
|
|
# Full path to asterisk binary
|
|
DAEMON=$AST_SBIN/asterisk
|
|
|
|
# Full path to safe_asterisk script
|
|
SAFE_ASTERISK=$AST_SBIN/safe_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() {
|
|
# Check if Asterisk is already running. If it is, then bug out, because
|
|
# starting safe_asterisk when Asterisk is running is very bad.
|
|
VERSION=`${AST_SBIN}/asterisk -rx 'core show version'`
|
|
if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
|
|
echo "Asterisk is already running."
|
|
exit 0
|
|
fi
|
|
|
|
# Start daemons.
|
|
echo -n $"Starting asterisk: "
|
|
if [ -f $SAFE_ASTERISK ] ; then
|
|
DAEMON=$SAFE_ASTERISK
|
|
fi
|
|
if [ $AST_USER ] ; then
|
|
ASTARGS="-U $AST_USER"
|
|
fi
|
|
if [ $AST_GROUP ] ; then
|
|
ASTARGS="$ASTARGS -G $AST_GROUP"
|
|
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
|
|
RETVAL=$?
|
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
|
|
echo
|
|
return $RETVAL
|
|
}
|
|
|
|
stop() {
|
|
# Stop daemons.
|
|
if [ -f $SAFE_ASTERISK ]; then
|
|
# Kill safe_asterisk first, to prevent us from starting up 2 instances of safe_asterisk
|
|
echo -n $"Stopping safe_asterisk: "
|
|
killproc `basename $SAFE_ASTERISK`
|
|
echo
|
|
fi
|
|
echo -n $"Shutting down asterisk: "
|
|
killproc `basename $DAEMON`
|
|
RETVAL=$?
|
|
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk
|
|
echo
|
|
return $RETVAL
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
reload() {
|
|
$DAEMON -rx 'module reload' > /dev/null 2> /dev/null
|
|
}
|
|
|
|
# See how we were called.
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
restart
|
|
;;
|
|
reload)
|
|
reload
|
|
;;
|
|
condrestart)
|
|
[ -f /var/lock/subsys/asterisk ] && restart || :
|
|
;;
|
|
status)
|
|
status asterisk
|
|
;;
|
|
*)
|
|
echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}"
|
|
exit 1
|
|
esac
|
|
|
|
exit $?
|