aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Boniface <joshua@boniface.me>2018-12-09 17:33:40 -0500
committerJoshua Boniface <joshua@boniface.me>2018-12-09 17:42:13 -0500
commitc591b6d75144989dfa7643f3b7f9cbd887c0de64 (patch)
treeb4124c3f78c9d407dd271b16f3987abc01c411f0
parent919f685e79e5086edc450db14c4cad029c564a0d (diff)
Update services to work with dotnet
-rw-r--r--debian/jellyfin.init102
-rw-r--r--debian/jellyfin.service4
-rw-r--r--debian/jellyfin.upstart5
3 files changed, 32 insertions, 79 deletions
diff --git a/debian/jellyfin.init b/debian/jellyfin.init
index e49662e63..da5cc4d6a 100644
--- a/debian/jellyfin.init
+++ b/debian/jellyfin.init
@@ -1,88 +1,44 @@
-#!/bin/bash
### BEGIN INIT INFO
-# Provides: jellyfin
-# Required-Start: $remote_fs $local_fs $network
-# Required-Stop: $remote_fs $local_fs $network
+# Provides: Emby Server
+# Required-Start: $local_fs $network
+# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: starts instance of Emby
-# Description: starts instance of Emby
+# Short-Description: Emby Server
+# Description: Runs Emby Server
### 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=jellyfin
-CONF_FILE=/etc/${NAME}.conf
-DEFAULT_FILE=/etc/default/${NAME}
-
-# Source Jellyfin default configuration
-. $DEFAULT_FILE
-
-# Source Jellyfin user configuration overrides
-if [[ -f $CONF_FILE ]]; then
- . $CONF_FILE
-else
- echo "${CONF_FILE} not found using default settings.";
-fi
-
-# Path of jellyfin binary
-JELLYFINSERVER=/usr/bin/jellyfin
-PIDFILE=${JELLYFIN_PIDFILE-/var/run/jellyfin.pid}
+# Carry out specific functions when asked to by the system
+pid=`ps -fA|grep dotnet|grep EmbyServer|awk '{print $2}'| tr -d '\n'`
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 $JELLYFINSERVER start &
- sleep 2
- if [[ -s $PIDFILE ]] && [[ -n "$(ps -p $(cat $PIDFILE) -o pid=)" ]]; then
- log_end_msg 0
- else
- log_end_msg 1
- fi
+ if [ "$pid" == "" ]; then
+ echo "Starting Emby..."
+ nohup dotnet /usr/lib/jellyfin/bin/EmbyServer.dll >/dev/null 2>&1 &
+ else
+ echo "Emby already running"
+ 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
+ if [ "$pid" != "" ]; then
+ echo "Stopping Emby..."
+ kill $pid
+ sleep 2
+ else
+ echo "Emby not running"
+ fi
;;
status)
- status_of_proc -p $PIDFILE "$JELLYFINSERVER" "$NAME"
- exit $? # notreached due to set -e
- ;;
- restart|force-reload)
- $0 stop || exit $?
- $0 start || exit $?
- ;;
+ if [ "$pid" != "" ]; then
+ echo "Emby running as $pid"
+ ps -f $pid
+ else
+ echo "Emby is not running"
+ fi
+ ;;
*)
- echo "Usage: /etc/init.d/jellyfin {start|stop|status|restart|force-reload}" >&2
- exit 3
+ echo "Usage: $0 {start|stop}"
+ exit 1
;;
esac
diff --git a/debian/jellyfin.service b/debian/jellyfin.service
index 58d77b005..751d19f89 100644
--- a/debian/jellyfin.service
+++ b/debian/jellyfin.service
@@ -3,10 +3,10 @@ Description=Jellyfin Media Server
After=network.target
[Service]
-ExecStart=/usr/bin/jellyfin start
+User=jellyfin
+ExecStart=/usr/bin/dotnet /usr/lib/jellyfin/bin/EmbyServer.dll
Restart=on-abort
TimeoutSec=20
-ExecStopPost=/usr/bin/jellyfin clear
[Install]
WantedBy=multi-user.target
diff --git a/debian/jellyfin.upstart b/debian/jellyfin.upstart
index a192f6129..ea7831ac0 100644
--- a/debian/jellyfin.upstart
+++ b/debian/jellyfin.upstart
@@ -16,8 +16,5 @@ script
# Log file
logger -t "$0" "DEBUG: `set`"
exec /usr/bin/jellyfin start
-end script
-
-post-stop script
- exec /usr/bin/jellyfin clear
+ exec /usr/bin/dotnet /usr/lib/jellyfin/bin/EmbyServer.dll
end script