mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-04 08:04:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -e
 | 
						|
#
 | 
						|
# /etc/init.d/rivendell
 | 
						|
#
 | 
						|
 | 
						|
DAEMONS="caed ripcd rdcatchd"
 | 
						|
PIDDIR=/var/run/rivendell
 | 
						|
NAME=rivendell
 | 
						|
LABEL="Rivendell daemons"
 | 
						|
 | 
						|
# Defaults
 | 
						|
RUN_MODE="init.d"
 | 
						|
 | 
						|
# Read config file (will override defaults above)
 | 
						|
[ -r /etc/default/rivendell ] && . /etc/default/rivendell
 | 
						|
 | 
						|
if [ ! -f "/etc/rd.conf" ]; then
 | 
						|
    echo "No /etc/rd.conf found. See documentation and /usr/share/doc/rivendell/examples/." >&2
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
DAEMON_USER=`sed -n 's/^AudioOwner=\(.*\)$/\1/p' /etc/rd.conf`
 | 
						|
 | 
						|
# For Ubuntu, create run directory to store pid files.
 | 
						|
AUDIOGROUP=`sed -n 's/^AudioGroup=\(.*\)$/\1/p' /etc/rd.conf`
 | 
						|
if [ ! -d /var/run/rivendell ]; then
 | 
						|
    install --directory --mode 02775 --owner="$DAEMON_USER" --group="$AUDIOGROUP" /var/run/rivendell
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# Check if Rivendell daemons are started by init scripts or pam_rd.
 | 
						|
if [ "$RUN_MODE" != "init.d" ]; then
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
for daemon in $DAEMONS; do
 | 
						|
    test -x /usr/bin/$daemon || exit 0
 | 
						|
done
 | 
						|
 | 
						|
function start() {
 | 
						|
    echo -n "Starting $LABEL:"
 | 
						|
    for daemon in $DAEMONS; do
 | 
						|
	start-stop-daemon --start --oknodo --chuid $DAEMON_USER --exec "/usr/bin/$daemon"
 | 
						|
	echo -n " $daemon"
 | 
						|
    done
 | 
						|
    echo "."
 | 
						|
}
 | 
						|
 | 
						|
function stop() {
 | 
						|
    echo -n "Stopping $LABEL:"
 | 
						|
    for daemon in $DAEMONS; do
 | 
						|
	start-stop-daemon --stop --pidfile "$PIDDIR/$daemon.pid" --oknodo --user $DAEMON_USER  --exec "/usr/bin/$daemon"
 | 
						|
	echo -n " $daemon"
 | 
						|
    done
 | 
						|
    echo "."
 | 
						|
 | 
						|
    # caed forgets sometimes the shared memory 0x5005
 | 
						|
    ipcrm -M 0x5005 2> /dev/null || true
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
    if ! /usr/bin/rdadmin --check-db; then
 | 
						|
	echo "No database available, check that MySQL is running" >&2;
 | 
						|
	exit 0;
 | 
						|
    fi
 | 
						|
 | 
						|
    start
 | 
						|
    ;;
 | 
						|
  stop)
 | 
						|
    stop
 | 
						|
      ;;
 | 
						|
  restart)
 | 
						|
    stop
 | 
						|
    start
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}"
 | 
						|
    exit 1
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
exit 0
 |