Problem mit Start/Stop Script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Problem mit Start/Stop Script

Beitrag von Mandarine » 03.11.2006 08:08:27

Hallo,

aus einem anderen Forum habe ich folgendes Startscript für den TwonkyVision Mediaserver (abgelegt als: usr/local/bin/mediaserver):

Code: Alles auswählen

#!/bin/bash
#

MSUSER="mediaserver"
MSDIR="/home/mediaserver/.mediaserver/"
MSINI="/home/mediaserver/.mediaserver/twonkyvision-mediaserver.ini"
MSPROG="/home/mediaserver/mediaserver/mediaserver"
MSLOG="/home/mediaserver/log/mediaserver.log"

su $MSUSER -c "cd $MSDIR; $MSPROG -D -inifile $MSINI > $MSLOG 2>&1"
Dazu dann noch die folgende Datei in /etc/init.d/mediaserver:

Code: Alles auswählen

#!/bin/sh
#
#


MSPID=/var/run/mediaserver.pid
MSPROG=/usr/local/bin/mediaserver

test -f $MSPROG || exit 0

case "$1" in
  start)
    echo -n "Starting mediaserver: "
    start-stop-daemon --start --quiet \
    --exec $MSPROG
    sleep 2

    if [ -f "$MSPID" ] && ps h `cat "$MSPID"` >/dev/null; then
      echo "mediaserver."
    else
      echo "mediaserver failed to start - check syslog for diagnostics."
      exit 1
    fi
  ;;
  stop)
    echo -n "Stopping mediaserver: mediaserver"
    start-stop-daemon --stop --quiet --pidfile $MSPID
    echo "."
  ;;
  restart | force-reload)
    $0 stop
    sleep 2
    $0 start

    if [ "$?" != "0" ]; then
      exit 1
    fi
  ;;
  *)
    echo "Usage: /etc/init.d/mediaserver {start|stop|restart|force-reload}"
    exit 1
esac

exit 0
Nun zu meinem Problem:

Der Server heißt ja jetzt "twonkymedia" und nicht mehr "mediaserver".

Ich habe es soweit hinbekommen, dass ich in der Zeile:

Code: Alles auswählen

MSPROG="/home/mediaserver/mediaserver/mediaserver"
das mediaserver durch twonkymedia ersetzt habe.

Allerdings bekomme ich bei wenn ich

Code: Alles auswählen

/etc/init.d/mediaserver start
aufrufe die Fehlermeldung:

Code: Alles auswählen

Starting mediaserver: mediaserver failed to start - check syslog for diagnostics.
Der Server läuft dann zwar (ich vermute daher, das das Skript nur nach dem falschen Prozessnamen sucht. Weiß aber nicht wie ich das ändern kann).

Sascha

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 03.11.2006 08:17:58

Code: Alles auswählen

Starting mediaserver: mediaserver failed to start - check syslog for diagnostics.
Ich bin ja dafür, dass du genau das machst.

cu

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 03.11.2006 08:29:37

Gibt es unter /var/run wenn der Server nun läuft zufällig statt der
/var/run/mediaserver.pid
eine
/var/run/twonkymedia.pid
?

Wenn ja, solltest du das im Init Script noch entsprechend ändern
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 03.11.2006 19:16:13

tjam in syslog steht leider gar nichts drin und unter /var/run gibt es weder einen mediaserver.pid nochc einen twonkymedia.pid :-(

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 03.11.2006 22:01:16

vielleicht hilft die Option --make-pidfile von "start-stop-daemon" beim starten?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 04.11.2006 08:41:50

hab ich versucht ... hilft auch nichts :-(

die Zeile lautet jetzt:

Code: Alles auswählen

start-stop-daemon --start --quiet \   --pidfile $MSPID --exec $MSPROG
noch eine Idee?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 04.11.2006 09:39:32

ja... "--make-pidfile" sagte ich... nicht "--pidfile"
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 05.11.2006 20:57:00

Also, bei

Code: Alles auswählen

start-stop-daemon --start --quiet --make-pidfile \  --exec $MSPROG
kommt die Meldung:

Code: Alles auswählen

Starting TwonkyVision Mediaserver: start-stop-daemon: --make-pidfile is only relevant with --pidfile

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 05.11.2006 21:45:32

ja du musst beides angeben...
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 06.11.2006 20:35:49

sorry, aber das funktioniert auch nicht :-(

Wie muss die Zeile denn Deiner Meinung nach lauten? Was bedeutet eigentlich der "\" in der Zeile?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 06.11.2006 22:35:34

Code: Alles auswählen

start-stop-daemon --start --quiet \   
     --make-pidfile --pidfile $MSPID --exec $MSPROG
der \ ist, weil du den Befehl der eigentlich in einer Zeile stehen müsste in 2 Zeilen schreibst
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 07.11.2006 19:01:19

Hm, jetzt habe ich zwar ein twonkymedia.pid in /var/run aber bekomme immer noch die Fehlermeldung:

Code: Alles auswählen

Starting TwonkyVision Mediaserver: TwonkyVision Mediaserver failed to start - check syslog for diagnostics.
:-(

Und in /var/log/syslog steht auch nichts drin ...

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 08.11.2006 02:16:11

wie sieht denn inzwischen das init.d Skript aus?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Mandarine
Beiträge: 85
Registriert: 03.05.2005 07:59:28

Beitrag von Mandarine » 08.11.2006 22:07:36

Code: Alles auswählen

#!/bin/sh
#
#

MSPID=/var/run/twonkymedia.pid
MSPROG=/usr/local/bin/mediaserver

test -f $MSPROG || exit 0

case "$1" in
  start)
    echo -n "Starting TwonkyVision Mediaserver: "
    start-stop-daemon --start --quiet \
    --make-pidfile --pidfile $MSPID --exec $MSPROG 
    sleep 2

    if [ -f "$MSPID" ] && ps h `cat "$MSPID"` >/dev/null; then
      echo "Ok."
    else
      echo "TwonkyVision Mediaserver failed to start - check syslog for diagnostics."
      exit 1
    fi
  ;;
  stop)
    echo -n "Stopping mediaserver: mediaserver"
    start-stop-daemon --stop --quiet --pidfile $MSPID
    echo "Ok."
  ;;
  restart | force-reload)
    $0 stop
    sleep 2
    $0 start

    if [ "$?" != "0" ]; then
      exit 1
    fi
  ;;
  *)
    echo "Usage: /etc/init.d/mediaserver {start|stop|restart|force-reload}"
    exit 1
esac

exit 0

Antworten