web-dev-qa-db-fra.com

UMS.sh (exécuté en tant que service) sur Ubuntu 14.04 ne lit pas le fichier de configuration

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
1
Newwbie

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.

3
Pyroesque

Non, le correctif correct est le suivant:

  • lancez UMS.sh en tant que root; il créera le profil /root/.config/UMS
  • éditez le script init /etc/init.d/ums et mettez le chemin du profil à droite: UMS_PROFILE =/root/.config/UMS /
0
Jürgen Depicker