UMS.sh (als Dienst ausführen) unter Ubuntu 14.04 liest die Konfigurationsdatei nicht

UMS.sh (als Dienst ausführen) unter Ubuntu 14.04 liest die Konfigurationsdatei nicht

Ich versuche, auf meinem Ubuntu 14.04 einen Universal Media Server auszuführen, damit ich Filme auf meine PS3 streamen kann (leider niedrigste Firmware 4.55 – nicht jailbreakbar).

Nach langer Recherche im Internet konnte ich es als Dienst zum Laufen bringen. /etc/init.d/UMS.shDie anderen Dateien befinden sich im /usr/umsOrdner. Dazu gehören die UMS.confKonfigurationsdatei, UMS.shdie Datei und ums.jardie Datei und alle anderen.

Ich habe cream( gedithat Probleme beim Erstellen dieser temporären Dateien, die ich später löschen muss) zum Bearbeiten UMS.confder Datei verwendet.

Ich versuche, es auf einem bestimmten Port laufen zu lassen und eine IP-Whitelist zu haben, sodass nicht jeder im Netzwerk auf meine Sachen zugreifen kann.

Also habe ich die Änderungen an UMS.confder Datei vorgenommen und sie ein paar Mal geladen, um zu überprüfen, ob die Änderungen gespeichert wurden – das wurden sie –, aber als ich das tat:

   service UMS.sh start

UMS wird gestartet, jedoch mit allen Standardkonfigurationen.

Bitte helfen Sie mir. Ich bin neu bei Ubuntu, also führen Sie mich bitte durch. Ich kann das Skript bereitstellen, /etc/init.d/UMS.shwenn das hilft, aber sagen Sie mir bitte, wie ich es hier einfügen kann. Ich habe es versucht und das # hat alles fett dargestellt.

UPDATE: Mit Hilfe von Letizias Kommentar ist hier das Skript für

„/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

Antwort1

Es sieht so aus, als hätten Sie dasselbe Skript verwendet wie ich, um UMS zu installieren. Ich bin auf dasselbe Problem gestoßen und habe eine Möglichkeit gefunden, es zu beheben. Das Skript erstellt einen Link in /etc, der auf eine Datei in /root verweist, die nicht existiert. Wenn Sie ein ls -l auf /etc ausführen, sollten Sie etwas wie Folgendes sehen:

UMS.sh < /root/.config/UMS.conf

aber das Skript erstellt diese Datei nie, wahrscheinlich hat es auch nicht die Berechtigungen. Also habe ich diesen Link gelöscht und einen neuen erstellt, der auf die Konfigurationsdatei in /usr/ums/ verweist.

sudo rm /etc/UMS.sh
sudo ln -s /usr/ums/UMS.conf /etc/UMS.sh

Das hat bei mir letztendlich funktioniert und jetzt kann ich einfach die UMS.conf-Datei bearbeiten, um Änderungen vorzunehmen. Hoffe, das hilft.

Antwort2

Nein, die richtige Lösung ist diese:

  • Führen Sie UMS.sh als Root aus. Dadurch wird das Profil /root/.config/UMS erstellt.
  • Bearbeiten Sie das Init-Skript /etc/init.d/ums und setzen Sie den Profilpfad richtig: UMS_PROFILE=/root/.config/UMS/

verwandte Informationen