#!/bin/bash set -e NAME=jellyfin DEFAULT_FILE=/etc/default/${NAME} # Source Jellyfin default configuration if [[ -f $DEFAULT_FILE ]]; then . $DEFAULT_FILE fi # Data directories for program data (cache, db), configs, and logs PROGRAMDATA=${JELLYFIN_DATA_DIRECTORY-/var/lib/$NAME} CONFIGDATA=${JELLYFIN_CONFIG_DIRECTORY-/etc/$NAME} LOGDATA=${JELLYFIN_LOG_DIRECTORY-/var/log/$NAME} CACHEDATA=${JELLYFIN_CACHE_DIRECTORY-/var/cache/$NAME} # In case this system is running systemd, we make systemd reload the unit files # to pick up changes. if [[ -d /run/systemd/system ]] ; then systemctl --system daemon-reload >/dev/null || true fi case "$1" in install|upgrade) # try graceful termination; if [[ -d /run/systemd/system ]]; then deb-systemd-invoke stop ${NAME}.service > /dev/null 2>&1 || true elif [ -x "/etc/init.d/${NAME}" ] || [ -e "/etc/init/${NAME}.conf" ]; then invoke-rc.d ${NAME} stop > /dev/null 2>&1 || true fi # try and figure out if jellyfin is running PIDFILE=$(find /var/run/ -maxdepth 1 -mindepth 1 -name "jellyfin*.pid" -print -quit) [[ -n "$PIDFILE" ]] && [[ -s "$PIDFILE" ]] && JELLYFIN_PID=$(cat ${PIDFILE}) # if its running, let's stop it if [[ -n "$JELLYFIN_PID" ]]; then echo "Stopping Jellyfin!" # if jellyfin is still running, kill it if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then CPIDS=$(pgrep -P $JELLYFIN_PID) sleep 2 && kill -KILL $CPIDS kill -TERM $CPIDS > /dev/null 2>&1 fi sleep 1 # if it's still running, show error if [[ -n "$(ps -p $JELLYFIN_PID -o pid=)" ]]; then echo "Could not successfully stop JellyfinServer, please do so before uninstalling." exit 1 else [[ -f $PIDFILE ]] && rm $PIDFILE fi fi # Clean up old Emby cruft that can break the user's system [[ -f /etc/sudoers.d/emby ]] && rm -f /etc/sudoers.d/emby # If we have existing config, log, or cache dirs in /var/lib/jellyfin, move them into the right place if [[ -d $PROGRAMDATA/config ]]; then mv $PROGRAMDATA/config $CONFIGDATA fi if [[ -d $PROGRAMDATA/logs ]]; then mv $PROGRAMDATA/logs $LOGDATA fi if [[ -d $PROGRAMDATA/logs ]]; then mv $PROGRAMDATA/cache $CACHEDATA fi ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0