%20unter%20Ubuntu%2014.04%20liest%20die%20Konfigurationsdatei%20nicht.png)
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.sh
Die anderen Dateien befinden sich im /usr/ums
Ordner. Dazu gehören die UMS.conf
Konfigurationsdatei, UMS.sh
die Datei und ums.jar
die Datei und alle anderen.
Ich habe cream
( gedit
hat Probleme beim Erstellen dieser temporären Dateien, die ich später löschen muss) zum Bearbeiten UMS.conf
der 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.conf
der 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.sh
wenn 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/