asterisk/contrib/init.d/rc.redhat.asterisk
Leif Madsen 6b715d8f5c Merged revisions 337115 via svnmerge from
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
2011-09-20 22:29:24 +00:00

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 $?