J'essaie de faire que mon Ubuntu 14.04 exécute un serveur multimédia universel afin de pouvoir diffuser des films sur mon ps3 (le plus bas firmware 4.55 malheureusement - impossible à débloquer).
Après de nombreuses recherches sur le net, j'ai pu le faire fonctionner en tant que service, /etc/init.d/UMS.sh
, les autres fichiers sont dans le dossier /usr/ums
. Ceux-ci incluent le fichier de configuration UMS.conf
, le fichier UMS.sh
et le fichier ums.jar
et tous les autres.
J'ai utilisé cream
(gedit
a des problèmes pour créer ces fichiers temporaires que je dois supprimer plus tard) pour modifier le fichier UMS.conf
.
J'essaie de le faire fonctionner sur un port spécifique et d'avoir une liste blanche IP afin que tout le monde sur le réseau ne puisse pas accéder à mes données.
Alors j'ai fait les modifications sur le fichier UMS.conf
, je l'ai chargé plusieurs fois pour vérifier que les modifications étaient enregistrées - elles l'ont fait - mais quand je le fais:
service UMS.sh start
UMS démarrera mais avec toutes les configurations par défaut.
S'il vous plaît aider. Je suis nouveau sur Ubuntu, alors n'hésitez pas à me guider. Je peux fournir le script /etc/init.d/UMS.sh
si cela vous aide, mais dites-moi s'il vous plaît comment coller ici, j'ai essayé et # fait des choses en gras.
UPDATE: Avec l'aide du commentaire de Letizia, voici le script de
'/etc/init.d/UMS.sh'
#!/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 <[email protected]>
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Universal Media Server"
NAME=UMS.sh
UMS_PROFILE=/etc/$NAME
DAEMON=/usr/ums/$NAME
DAEMON_OPTS="console"
SCRIPTNAME=/etc/init.d/$NAME
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
Il semble que vous ayez utilisé le même script que moi pour installer UMS. J'ai rencontré le même problème et j'ai trouvé un moyen de le résoudre. Le script crée un lien dans/etc qui pointe vers un fichier dans/root qui n'existe pas. Si vous faites un ls -l sur/etc, vous devriez voir quelque chose comme:
UMS.sh < /root/.config/UMS.conf
mais le script ne crée jamais réellement ce fichier, il n'a probablement pas les autorisations aussi. Donc, ce que j’ai fait, c’est de supprimer ce lien et d’en créer un nouveau pointant vers le fichier de configuration dans/usr/ums /
Sudo rm /etc/UMS.sh
Sudo ln -s /usr/ums/UMS.conf /etc/UMS.sh
Cela a fini par fonctionner pour moi et je peux maintenant éditer le fichier UMS.conf pour y apporter des modifications. J'espère que cela t'aides.
Non, le correctif correct est le suivant: