Skip to content
Snippets Groups Projects
rc.redhat.asterisk 2.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • Mark Spencer's avatar
    Mark Spencer committed
    #!/bin/sh
    
    # $Id: asterisk,v 1.3 2005/11/17 22:30:01 Gregory Boehnlein <damin@nacs.net>
    
    Mark Spencer's avatar
    Mark Spencer committed
    #
    
    # asterisk    Starts, Stops and Reloads Asterisk.
    
    Mark Spencer's avatar
    Mark Spencer committed
    #
    
    # chkconfig: 2345 40 60
    # description: Asterisk PBX and telephony daemon.
    
    Mark Spencer's avatar
    Mark Spencer committed
    # processname: asterisk
    
    # 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' 
    
    # Use this option to specify a different configuration directory
    #AST_CONFIG=/etc/asterisk
    
    # 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"
    
    
    Mark Spencer's avatar
    Mark Spencer committed
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    
    if ! [ -x $AST_SBIN/asterisk ] ; then
    
    	echo "ERROR: $AST_SBIN/asterisk not found"
    
    if ! [ -d $AST_CONFIG ] ; then
    
    	echo "ERROR: $AST_CONFIG directory not found"
    
    # Uncomment this ONLY if you know what you are doing.
    # export LD_ASSUME_KERNEL=2.4.1
    
    DAEMON=$AST_SBIN/asterisk
    
    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
    [ -x $CONFIGFILE ] && . $CONFIGFILE
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    RETVAL=0
    
    
    start() {
    	# 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"
    
    	fi
    	daemon $DAEMON $ASTARGS
    	RETVAL=$?
    	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/asterisk
    	echo
    	return $RETVAL
    }
    
    stop() {
    	# Stop daemons.
    	echo -n $"Shutting down asterisk: "
    	killproc asterisk
    	RETVAL=$?
    	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/asterisk
    	echo
    	return $RETVAL
    }
    
    restart() {
    	stop
    	start
    }
    
    reload() {
    	$DAEMON -rx 'reload' > /dev/null 2> /dev/null
    }
    
    
    Mark Spencer's avatar
    Mark Spencer committed
    # See how we were called.
    case "$1" in
      start)
    
    Mark Spencer's avatar
    Mark Spencer committed
      stop)
    
    Mark Spencer's avatar
    Mark Spencer committed
    	;;
    
      condrestart)
    	[ -f /var/lock/subsys/asterisk ] && restart || :
    	;;
      status)
    	status asterisk
    
    Mark Spencer's avatar
    Mark Spencer committed
    	;;
      *)
    
    	echo "Usage: asterisk {start|stop|restart|reload|condrestart|status}"
    	exit 1