119 lines
2.6 KiB
Bash
119 lines
2.6 KiB
Bash
#! /bin/sh
|
|
#
|
|
# INIT script for Jitsi Videobridge
|
|
# Version: 1.0 01-May-2014 yasen@bluejimp.com
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: jitsi-videobridge
|
|
# Required-Start: $local_fs $remote_fs
|
|
# Required-Stop: $local_fs $remote_fs
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Jitsi Videobridge
|
|
# Description: WebRTC compatible Selective Forwarding Unit (SFU)
|
|
### END INIT INFO
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
# Include videobridge defaults if available
|
|
if [ -f /etc/jitsi/videobridge/config ]; then
|
|
. /etc/jitsi/videobridge/config
|
|
fi
|
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
DAEMON=/usr/share/jitsi-videobridge/jvb.sh
|
|
NAME=jvb
|
|
USER=jvb
|
|
# A tmpfs backed directory just for the JVB process. This is introduced
|
|
# to hold packet arrival times, but it may be otherwise useful in the future.
|
|
TMPPATH=/var/run/jitsi-videobridge
|
|
PIDFILE=/var/run/jitsi-videobridge.pid
|
|
LOGFILE=/var/log/jitsi/jvb.log
|
|
DESC=jitsi-videobridge
|
|
|
|
if [ ! -d "$TMPPATH" ]; then
|
|
mkdir "$TMPPATH"
|
|
chown $USER:adm "$TMPPATH"
|
|
fi
|
|
|
|
if [ ! $JVB_HOST ]; then
|
|
JVB_HOST=localhost
|
|
fi
|
|
# TODO: remove this when support for --apis is removed
|
|
DAEMON_OPTS="$JVB_OPTS"
|
|
|
|
if [ ! -x $DAEMON ] ;then
|
|
echo "Daemon not executable: $DAEMON"
|
|
exit 1
|
|
fi
|
|
|
|
set -e
|
|
|
|
stop() {
|
|
if [ -f $PIDFILE ]; then
|
|
PID=$(cat $PIDFILE)
|
|
fi
|
|
echo -n "Stopping $DESC: "
|
|
if [ $PID ]; then
|
|
kill $PID || true
|
|
rm $PIDFILE || true
|
|
echo "$NAME stopped."
|
|
else
|
|
echo "$NAME doesn't seem to be running."
|
|
fi
|
|
}
|
|
|
|
start() {
|
|
if [ -f $PIDFILE ]; then
|
|
echo "$DESC seems to be already running, we found pidfile $PIDFILE."
|
|
exit 1
|
|
fi
|
|
echo -n "Starting $DESC: "
|
|
DAEMON_START_CMD="JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\" exec $DAEMON $DAEMON_OPTS < /dev/null >> $LOGFILE 2>&1"
|
|
AUTHBIND_CMD=""
|
|
if [ "$AUTHBIND" = "yes" ]; then
|
|
AUTHBIND_CMD="/usr/bin/authbind --deep /bin/bash -c "
|
|
DAEMON_START_CMD="'$DAEMON_START_CMD'"
|
|
fi
|
|
start-stop-daemon --start --quiet --background --chuid $USER --make-pidfile --pidfile $PIDFILE \
|
|
--exec /bin/bash -- -c "$AUTHBIND_CMD $DAEMON_START_CMD"
|
|
echo "$NAME started."
|
|
}
|
|
|
|
reload() {
|
|
echo 'Not yet implemented.'
|
|
}
|
|
|
|
status() {
|
|
status_of_proc -p $PIDFILE java "$NAME" && exit 0 || exit $?
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
stop
|
|
start
|
|
;;
|
|
reload)
|
|
reload
|
|
;;
|
|
force-reload)
|
|
reload
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
*)
|
|
N=/etc/init.d/$NAME
|
|
echo "Usage: $N {start|stop|restart|reload|status}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|