mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-24 17:37:53 +02: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
|