Changes

Created page with "[https://www.universalmediaserver.com/ Universal Media Server] (or UMS for short) is a pretty cool program that will both create a browsable website of your media as well as s..."
[https://www.universalmediaserver.com/ Universal Media Server] (or UMS for short) is a pretty cool program that will both create a browsable website of your media as well as stream it to compliant devices that support [https://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP] or [https://en.wikipedia.org/wiki/Digital_Living_Network_Alliance DLNA].

This howto is adapted from [https://www.slsmk.com/how-to-install-universal-media-server-ums-on-ubuntu-in-headless-mode/ this article] describing how to install an older version of UMS on an older version of Ubuntu.

=Install UMS=
#Install the necessary packages
##run ''sudo apt-get install software-properties-common''
##run ''sudo apt-get update''
##run ''sudo apt-get install openjdk-8-jre openjdk-8-jre-headless''
##run ''apt-get install mediainfo dcraw vlc-bin mplayer mencoder''
#Install the latest version of UMS
##run ''cd /opt''
##run ''sudo wget https://downloads.sourceforge.net/project/unimediaserver/Official%20Releases/Linux/UMS-8.0.1.tgz''
##run ''sudo tar -xvzf UMS-8.0.1.tgz''
##run ''sudo ln -s /opt/ums-8.0.1 ums''
##run ''sudo rm UMS-8.0.1.tgz''
#Setup UMS to auto start at boot
##run ''sudo nano /etc/init.d/ums'' and copy the following into that file.
<nowiki>#!/bin/bash
#
### BEGIN INIT INFO
# Provides: ums
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts UMS program.
# Description: Java Upnp Media Server dedicated to PS3
### END INIT INFO

#set -x

# Author: Papa Issa DIAKHATE <paissad@gmail.com>
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Universal Media Server"
NAME=ums
UMS_PROFILE=/etc/UMS.conf
DAEMON=/opt/ums/UMS.sh
DAEMON_OPTS="console"
SCRIPTNAME=/etc/init.d/ums
UMS_START=1 # Wether to start or not UMS ver at boot time.
DODTIME=30 # Time to wait for the server to die, in seconds.
# If this value is set too low you might not
# let the program to die gracefully and 'restart' will not work

test -x $DAEMON || exit 1

# 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

# Include ums defaults if available
if [ -f "/etc/default/$NAME" ] ; then
. /etc/default/$NAME
fi

# May we run the init.d script ?
[ $UMS_START = 1 ] || exit 1

#--------------------------------------------------------------------------
# Some color codes
txtred=$'\e[0;31m' # Red
txtylw=$'\e[0;33m' # Yellow
txtrst=$'\e[0m' # Text Reset
#--------------------------------------------------------------------------
warnout(){
echo >&2 -e ""$txtylw"Warning:$txtrst $1"
}
#--------------------------------------------------------------------------
running(){
pid=`pgrep -f 'java .*ums.jar.*'`
}
#--------------------------------------------------------------------------
do_start(){
running && { warnout "$NAME is already running !"; exit 0; }
echo "Starting $DESC : $NAME"
UMS_PROFILE="$UMS_PROFILE" start-stop-daemon --start --quiet --background --oknodo \
--exec $DAEMON -- $DAEMON_OPTS

}
#--------------------------------------------------------------------------
do_stop(){
running || { warnout "$NAME is NOT running !"; exit 0; }
local countdown="$DODTIME"
echo -e "Stopping $DESC : $NAME \c "
kill -9 $pid
while running; do
if (($countdown >= 0)); then
sleep 1; echo -n .;
((--countdown))
else
break;
fi
done
echo
# If still running, then try to send SIGINT signal
running && { \
echo >&2 "Using kill -s SIGINT instead"; \
echo >&2 "If you see this message again, then you should increase the value of DODTIME in '$0'."; \
kill -2 $pid; \
}

if [ -e "/usr/share/ums/debug.log" ]; then
count=9
while [ $count -ge 1 ]
do
if [ -e "/usr/share/ums/debug.log.$count" ]; then
plus=$((count+1))
mv "/usr/share/ums/debug.log.$count" "/usr/share/ums/debug.log.$plus"
fi
count=$((count-1))
done
if [ -e "/usr/share/ums/debug.log" ]; then
mv "/usr/share/ums/debug.log" "/usr/share/ums/debug.log.1"
fi
fi

return 0
}
#--------------------------------------------------------------------------
do_force-stop(){
running || { warnout "$NAME is NOT running !"; exit 0; }
echo "Stopping $DESC : $NAME"
kill -9 $pid
if [ -e "/usr/share/ums/debug.log" ]; then
count=9
while [ $count -ge 1 ]
do
if [ -e "/usr/share/ums/debug.log.$count" ]; then
plus=$((count+1))
mv "/usr/share/ums/debug.log.$count" "/usr/share/ums/debug.log.$plus"
fi
count=$((count-1))
done
if [ -e "/usr/share/ums/debug.log" ]; then
mv "/usr/share/ums/debug.log" "/usr/share/ums/debug.log.1"
fi
fi
}
#--------------------------------------------------------------------------
do_status(){
echo -n " * $NAME is "
( running || { echo "NOT running "; exit 0; } )
( running && { echo "running (PID -> $(echo $pid))"; exit 0; } )
}
#--------------------------------------------------------------------------
case "$1" in

start|stop|force-stop|status)
do_${1}
;;
restart|reload)
do_stop
do_start
;;
force-restart|force-reload)
do_force-stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|force-stop|restart|force-restart|reload|force-reload|status}"
exit 1
;;
esac</nowiki>
##run ''chmod +x /etc/init.d/ums''
##run ''update-rc.d ums defaults''
#Configure UMS
##run ''cp /opt/ums/UMS.conf /etc/''
##run ''cp /opt/ums/WEB.conf /etc/ums/''
##run ''sudo nano /etc/UMS.conf'' and set the following variables (you'll have to setup ''folders'' and ''folders_monitored'' to something specific for environment)
##*server_name = MyMediaServer
##*language = en-US
##*minimized = true
##*auto_update = true
##*hide_advanced_options = false
##*single_instance = true
##*chromecast_extension = true
##*prettify_filenames = true
##*show_server_settings_folder = true
##*atz_limit = 3000
##*show_recently_played_folder = true
##*folders = /mnt/media/Video/Movies, /mnt/media/Video/TV_Shows, /mnt/media/Video/Web_Shows, /mnt/media/Music, /mnt/media/Comedy
##*folders_monitored = /mnt/media/Video/Movies, /mnt/media/Video/TV_Shows, /mnt/media/Video/Web_Shows, /mnt/media/Music, /mnt/media/Comedy
##*web_port = 80
##*web_conf = /etc/ums/WEB.conf
##*name = main
#start UMS by running ''sudo service ums start''
#visit the UMS webpage by going to ''http://<UMSServerHostname>'' in a web browser

=References=
*https://www.slsmk.com/how-to-install-universal-media-server-ums-on-ubuntu-in-headless-mode/