mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 02:27:18 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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
 |