#!/bin/bash ### BEGIN INIT INFO # Provides: emby-server # Required-Start: $remote_fs $local_fs $network # Required-Stop: $remote_fs $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts instance of Emby # Description: starts instance of Emby ### END INIT INFO # chkconfig: 2345 20 80 #The above indicates that the script should be started in levels 2, 3, 4, and 5, #that its start priority should be 20, and that its stop priority should be 80. # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions NAME=emby-server CONF_FILE=/etc/${NAME}.conf DEFAULT_FILE=/etc/default/${NAME} # Source Emby server default configuration . $DEFAULT_FILE # Source Emby server user configuration overrides if [[ -f $CONF_FILE ]]; then . $CONF_FILE else echo "${CONF_FILE} not found using default settings."; fi # Path of emby binary EMBYSERVER=/usr/bin/emby-server PIDFILE=${EMBY_PIDFILE-/var/run/emby-server.pid} case "$1" in start) log_daemon_msg "Starting $NAME daemon" if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then log_daemon_msg "apparently already running" log_end_msg 0 exit 0 fi exec $EMBYSERVER start & sleep 2 if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then log_end_msg 0 else log_end_msg 1 fi ;; stop) log_daemon_msg "Stopping $NAME daemon" if [[ ! -s $PIDFILE ]] || [[ -z "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then [[ -e $PIDFILE ]] && rm -rf $PIDFILE log_success_msg "apparently already stopped" log_end_msg 0 exit 0 fi PID=$(cat $PIDFILE) CPIDS=$(pgrep -P $PID) sleep 2 && kill -KILL $CPIDS kill -TERM $CPIDS > /dev/null 2>&1 sleep 2 if [[ -z "$(ps -p $PID -o pid=)" ]]; then rm -rf $PIDFILE log_end_msg 0 else log_end_msg 1 fi ;; status) status_of_proc -p $PIDFILE "$EMBYSERVER" "$NAME" exit $? # notreached due to set -e ;; restart|force-reload) $0 stop || exit $? $0 start || exit $? ;; *) echo "Usage: /etc/init.d/emby-server {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac