mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-02 20:08:17 +00:00 
			
		
		
		
	(Closes issue #13221) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135485 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			109 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# DAHDI:       Loads Asterisk modules
 | 
						|
#
 | 
						|
# Version:      @(#) /etc/rc.d/init.d/dahdi 1.0
 | 
						|
#
 | 
						|
# chkconfig: 2345 90 10
 | 
						|
# description: Loads and unloads DAHDI modules at boot time and shutdown.
 | 
						|
#
 | 
						|
# hide: true
 | 
						|
 | 
						|
# $Id$
 | 
						|
 | 
						|
# Source function library.
 | 
						|
. /etc/rc.d/init.d/functions
 | 
						|
 | 
						|
# Default modules - override in /etc/sysconfig/dahdi
 | 
						|
######################################
 | 
						|
MODULES="usb-uhci dahdi wcfxo wcusb"
 | 
						|
######################################
 | 
						|
 | 
						|
# Resolve back to the basename (i.e. dahdi, not S90dahdi)
 | 
						|
if [ 0`readlink $0` = "0" ]; then
 | 
						|
	CONFIGFILE=/etc/sysconfig/`basename $0`
 | 
						|
else
 | 
						|
	CONFIG0=`readlink $0`
 | 
						|
	CONFIGFILE=/etc/sysconfig/`basename $CONFIG0`
 | 
						|
fi
 | 
						|
 | 
						|
[ -f $CONFIGFILE ] && . $CONFIGFILE
 | 
						|
 | 
						|
function probe() {
 | 
						|
	gprintf "                           $1"
 | 
						|
	modprobe -i $1
 | 
						|
	# It has to be in the module list, otherwise something is wrong
 | 
						|
	if lsmod | grep -c ^$1 >/dev/null; then
 | 
						|
		success
 | 
						|
	else
 | 
						|
		failure
 | 
						|
	fi
 | 
						|
	echo
 | 
						|
}
 | 
						|
 | 
						|
function unprobe() {
 | 
						|
	gprintf "                           $1"
 | 
						|
	rmmod $1 >/dev/null 2>&1
 | 
						|
	# If it's still in the module list after removing it, there's something wrong.
 | 
						|
	if lsmod | grep -c ^$1 >/dev/null; then
 | 
						|
		failure
 | 
						|
	else
 | 
						|
		success
 | 
						|
	fi
 | 
						|
	echo
 | 
						|
}
 | 
						|
 | 
						|
function reverse_modules() {
 | 
						|
	tmp=$MODULES
 | 
						|
	MODULES=''
 | 
						|
	for i in $tmp; do
 | 
						|
		MODULES="$i $MODULES" ;
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
# See how we were called.
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
	gprintf "Loading Asterisk modules:\n"
 | 
						|
	for i in $MODULES; do
 | 
						|
		probe $i
 | 
						|
		usleep 100000 ;
 | 
						|
	done
 | 
						|
	ztcfg
 | 
						|
	;;
 | 
						|
  stop)
 | 
						|
	gprintf "Unloading Asterisk modules:\n"
 | 
						|
	reverse_modules
 | 
						|
	for i in $MODULES; do
 | 
						|
		unprobe $i
 | 
						|
		usleep 100000 ;
 | 
						|
	done
 | 
						|
	;;
 | 
						|
  status)
 | 
						|
  	#ztcfg -vv
 | 
						|
	OK=1
 | 
						|
	gprintf "Checking Asterisk modules"
 | 
						|
	for i in $MODULES; do
 | 
						|
		if [ `lsmod | grep -c $i` -eq 0 ]; then
 | 
						|
			OK=0
 | 
						|
		fi
 | 
						|
	done
 | 
						|
	if [ $OK -gt 0 ]; then
 | 
						|
		success
 | 
						|
	else
 | 
						|
		failure
 | 
						|
	fi
 | 
						|
	echo
 | 
						|
	;;
 | 
						|
  restart)
 | 
						|
  	$0 stop
 | 
						|
	$0 start
 | 
						|
	;;
 | 
						|
  *)
 | 
						|
	gprintf "*** Usage: $0 {start|stop|status|restart}\n"
 | 
						|
	exit 1
 | 
						|
esac
 | 
						|
 | 
						|
exit 0
 | 
						|
 |