mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-10-31 14:13:52 +01:00 
			
		
		
		
	* Removed all CVS tags. * Removed 'const char *name' parameter from all QObject contructors.
		
			
				
	
	
		
			253 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/bash
 | |
| ##
 | |
| ##    Rivendell init script for LSB and chkconfig(8) compliant Linux systems.
 | |
| ##
 | |
| ##    (C) Copyright 2002-2006,2016 Fred Gleason <fredg@paravelsystems.com>
 | |
| ##
 | |
| ##    This program is free software; you can redistribute it and/or modify
 | |
| ##    it under the terms of version 2 of the GNU General Public License as
 | |
| ##    published by the Free Software Foundation;
 | |
| ##
 | |
| ##    This program is distributed in the hope that it will be useful,
 | |
| ##    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| ##    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| ##    GNU General Public License for more details.
 | |
| ##
 | |
| ##    You should have received a copy of the GNU General Public License
 | |
| ##    along with this program; if not, write to the Free Software
 | |
| ##    Foundation, Inc., 59 Temple Place, Suite 330, 
 | |
| ##    Boston, MA  02111-1307  USA
 | |
| ##
 | |
| 
 | |
| # chkconfig: 35 65 35
 | |
| # description: Rivendell system daemons
 | |
| # config: /etc/rc.conf
 | |
| 
 | |
| ### BEGIN INIT INFO
 | |
| # Provides:          rivendell
 | |
| # Required-Start:    $remote_fs alsasound
 | |
| # Required-Stop:     $remote_fs alsasound
 | |
| # Should-Start:      @MYSQL_PKG@
 | |
| # Default-Start:     2 3 5
 | |
| # Default-Stop:      0 1 6
 | |
| # Description:       Start the Rivendell system daemons
 | |
| ### END INIT INFO
 | |
| 
 | |
| 
 | |
| function StartDaemons {
 | |
|   rdcleandirs
 | |
|   if test $GPIO_START = yes ; then
 | |
|     if test -x /etc/init.d/gpio ; then
 | |
|       /etc/init.d/gpio status > /dev/null
 | |
|       if test $? -eq 3 ; then
 | |
|         /etc/init.d/gpio start
 | |
|       fi
 | |
|     fi
 | |
|   fi
 | |
|   if test $HPI_START = yes ; then
 | |
|     if test -x /etc/init.d/asihpi ; then
 | |
|       /etc/init.d/asihpi status > /dev/null
 | |
|       if test $? -eq 3 ; then
 | |
|         /etc/init.d/asihpi start
 | |
| 	sleep 2
 | |
|       fi
 | |
|     fi
 | |
|   fi
 | |
|   if test $LIVEWIRE_START = yes ; then
 | |
|     if test -x /etc/init.d/axiad ; then
 | |
|       /etc/init.d/axiad status > /dev/null
 | |
|       if test $? -eq 3 ; then
 | |
|         /etc/init.d/axiad start
 | |
|       fi
 | |
|     fi
 | |
|   fi
 | |
|   $JACK_COMMAND > /dev/null 2> /dev/null &
 | |
|   echo -n $! > /var/run/rivendell/jackd.pid
 | |
|   ipcrm -M 0x5005 2> /dev/null
 | |
|   @LOCAL_PREFIX@/bin/caed 2> /dev/null
 | |
|   sleep 1
 | |
|   if test -x @LOCAL_PREFIX@/bin/ripcd ; then
 | |
|     @LOCAL_PREFIX@/bin/ripcd 2> /dev/null
 | |
|     sleep 1
 | |
|   fi
 | |
|   if test -x @LOCAL_PREFIX@/bin/rdcatchd ; then
 | |
|     @LOCAL_PREFIX@/bin/rdcatchd 2> /dev/null
 | |
|   fi
 | |
| }
 | |
| 
 | |
| 
 | |
| function StopDaemons {
 | |
|   killall rdimport > /dev/null 2> /dev/null
 | |
|   if [ -f /var/run/rivendell/rdcatchd.pid ] ; then
 | |
|     kill `cat /var/run/rivendell/rdcatchd.pid` > /dev/null 2> /dev/null
 | |
|   fi
 | |
|   if [ -f /var/run/rivendell/ripcd.pid ] ; then
 | |
|     kill `cat /var/run/rivendell/ripcd.pid` > /dev/null 2> /dev/null
 | |
|   fi
 | |
|   if [ -f /var/run/rivendell/caed.pid ] ; then
 | |
|     kill `cat /var/run/rivendell/caed.pid` > /dev/null 2> /dev/null
 | |
|   fi
 | |
|   if [ -n "$JACK_COMMAND" ] ; then
 | |
| #
 | |
| # FIXME
 | |
| #  Why are three kill(1) invocations necessary to stop jackd(1)?
 | |
| #
 | |
|     if [ -f /var/run/rivendell/jackd.pid ] ; then
 | |
|       kill `cat /var/run/rivendell/jackd.pid` > /dev/null 2> /dev/null
 | |
|       kill `cat /var/run/rivendell/jackd.pid` > /dev/null 2> /dev/null
 | |
|       kill `cat /var/run/rivendell/jackd.pid` > /dev/null 2> /dev/null
 | |
|       rm -f /var/run/rivendell/jackd.pid
 | |
|     fi
 | |
|   fi
 | |
|   sleep 2
 | |
|   rdcleandirs
 | |
| }
 | |
| 
 | |
| # Set path for script functions
 | |
| export PATH=$PATH:/usr/local/bin:/usr/local/sbin
 | |
| 
 | |
| #
 | |
| # If the LSB Init functions exist, use them, otherwise roll our own
 | |
| #
 | |
| if test -f /lib/lsb/init-functions ; then
 | |
|   . /lib/lsb/init-functions
 | |
| else
 | |
|   function log_success_msg() {
 | |
|     echo "$1 ... done."
 | |
|   }
 | |
|   function log_failure_msg() {
 | |
|     echo "$1 ... done."
 | |
|   }
 | |
| fi
 | |
| 
 | |
| # Default sysconfig values
 | |
| GPIO_START="no"
 | |
| HPI_START="no"
 | |
| LIVEWIRE_START="no"
 | |
| JACK_START="no"
 | |
| JACK_SAMPLE_RATE="48000"
 | |
| JACK_ALSA_DEVICE="hw:0"
 | |
| JACK_USE_REALTIME="no"
 | |
| 
 | |
| # Override defaults, if we have the sysconfig file
 | |
| test -f /etc/sysconfig/rivendell && . /etc/sysconfig/rivendell
 | |
| 
 | |
| # Build a jackd command line
 | |
| if [ $JACK_START = yes ] ; then
 | |
|   if [ $JACK_USE_REALTIME = yes ] ; then
 | |
|     JACK_COMMAND="jackd -R"
 | |
|   else
 | |
|     JACK_COMMAND="jackd"
 | |
|   fi
 | |
|   JACK_COMMAND="$JACK_COMMAND -d alsa -d $JACK_ALSA_DEVICE -r $JACK_SAMPLE_RATE"
 | |
| fi
 | |
| 
 | |
| # Check for missing binaries
 | |
| if [ ! -x @LOCAL_PREFIX@/bin/caed ] ; then
 | |
|   echo "caed not installed"
 | |
|   exit 5
 | |
| fi
 | |
| #if [ ! -x @LOCAL_PREFIX@/bin/ripcd ] ; then
 | |
| #  echo "ripcd not installed"
 | |
| #  exit 5
 | |
| #fi
 | |
| #if [ ! -x @LOCAL_PREFIX@/bin/rdcatchd ] ; then
 | |
| #  echo "rdcatchd not installed"
 | |
| #  exit 5
 | |
| #fi
 | |
| 
 | |
| # Check for existence of needed config file and read it
 | |
| if [ ! -r /etc/rd.conf ] ; then
 | |
|   echo "Missing /etc/rd.conf"
 | |
|   exit 6
 | |
| fi
 | |
| 
 | |
| # Check for existence of PID file directory and create it if necessary.
 | |
| if [ ! -d /var/run/rivendell ] ; then
 | |
|     mkdir -p /var/run/rivendell
 | |
| fi
 | |
| if [ ! -d /var/run/rivendell ] ; then
 | |
|     echo "Missing /var/run/rivendell directory"
 | |
|     exit 6
 | |
| fi
 | |
| 
 | |
| case "$1" in
 | |
|     start)
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 3 ; then
 | |
| 	    StartDaemons
 | |
| 	fi
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 0 ; then
 | |
| 	    log_success_msg "Starting Rivendell system daemons"
 | |
| 	    exit 0
 | |
| 	else
 | |
| 	    log_failure_msg "Starting Rivendell system daemons"
 | |
| 	    exit 1
 | |
| 	fi
 | |
| 	;;
 | |
|     stop)
 | |
| 	StopDaemons
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 0 ; then
 | |
| 	    log_failure_msg "Stopping Rivendell system daemons"
 | |
| 	    exit 1
 | |
| 	else
 | |
| 	    log_success_msg "Stopping Rivendell system daemons"
 | |
| 	    exit 0
 | |
| 	fi
 | |
| 	;;
 | |
|     restart)
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 0 ; then
 | |
| 	    $0 stop
 | |
| 	fi
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 0 ; then
 | |
| 	    exit 1
 | |
| 	fi
 | |
| 	$0 start
 | |
| 	$0 silent-status
 | |
| 	if test $? -eq 0 ; then
 | |
| 	    exit 0
 | |
| 	fi
 | |
| 	exit 1
 | |
| 	;;
 | |
|     force-reload)
 | |
| 	$0 restart
 | |
| 	;;
 | |
|     status)
 | |
| 	$0 silent-status
 | |
| 	EXIT_CODE=$?
 | |
| 	if test $EXIT_CODE -eq 0 ; then
 | |
| 	    echo "Rivendell system daemons running."
 | |
| 	else 
 | |
| 	    echo "Rivendell system daemons stopped."
 | |
| 	fi
 | |
| 	exit $EXIT_CODE
 | |
| 	;;
 | |
|     silent-status)
 | |
| 	if test -f /var/run/rivendell/caed.pid ; then
 | |
| 	    if test -d /proc/`cat /var/run/rivendell/caed.pid` ; then
 | |
| 		if test ! -x @LOCAL_PREFIX@/bin/ripcd ; then
 | |
| 		    exit 0
 | |
| 		fi
 | |
| 		if test -f /var/run/rivendell/ripcd.pid ; then
 | |
| 		    if test -d /proc/`cat /var/run/rivendell/ripcd.pid` ; then
 | |
| 			if test -f /var/run/rivendell/rdcatchd.pid ; then
 | |
| 			    if test -d /proc/`cat /var/run/rivendell/rdcatchd.pid` ; then
 | |
| 				exit 0
 | |
| 			    fi
 | |
| 			fi
 | |
| 		    fi
 | |
| 		fi
 | |
| 	    fi
 | |
| 	fi
 | |
| 	exit 3
 | |
| 	;;
 | |
|     *)
 | |
| 	echo "Usage: $0 {start|stop|restart|force-reload|status}"
 | |
| 	exit 1
 | |
| 	;;
 | |
| esac
 |