[Problem] Problem mit Init-Skript

dad401

Neuer User
Mitglied seit
26 Aug 2007
Beiträge
89
Punkte für Reaktionen
2
Punkte
8
Hallo,

für eine FHEM Installation, habe ich mir ein Init-Skript geschrieben/ergänzt, was soweit funktioniert. Problematisch ist derzeit noch der Start (der funktioniert, aber nicht ganz 100%) über die WebGUI.

Ich nutze folgende Startfunktion in /etc/init.d/rc.fhem:
Code:
start() {
    echo -n "Starting FHEM ... "
    trap "" SIGHUP

    PATH=$FHEM_PATH:$PATH
    export PATH
    export LD_LIBRARY_PATH=$FHEM_PATH/lib
    export PERL5LIB=$FHEM_PATH/lib/perl:$FHEM_PATH/lib/perl/arch

    cd $FHEM_PATH
    ./perl fhem.pl fhem.cfg &
    echo 'done.'
}

Leider entstehen beim Aufruf von "./perl fhem.pl fhem.cfg &" Ausgaben, die im Webinterface nach Starten des Dienstes angezeigt werden - ebenfalls schliesst die Anzeige im Browser nicht ab - der Browser wartet/lädt ständig.

Anstatt der richtigen Ausgabe im Browser wie:
Code:
Starte fhem:

Starting FHEM ... done.

kommt folgendes:

Code:
Starte fhem:

Use of uninitialized value $temperature in concatenation (.) or string at ./FHEM/59_Weather.pm line 329, <$fh> line 86.
Use of uninitialized value $temperature in concatenation (.) or string at ./FHEM/59_Weather.pm line 329, <$fh> line 88.
Use of uninitialized value in string lt at fhem.pl line 1792, <$fh> line 84.
Use of uninitialized value in string lt at fhem.pl line 1792, <$fh> line 108.

Die Meldungen sind jetzt nicht tragisch - ich wüsste lieber, wie ich das ganze in rc.fhem aufrufen sollte, damit diese Meldungen nicht mit ausgegeben werden. Zusätzlich werden ebenfalls 2 "hängende" Prozesse erzeugt:
Code:
S     0  9281  9280  1204   320 0:0   01:37 00:00:00 {busybox} sed -r    s#(^WARNING:) #<span class="failure">\1</span> #   s# (failed|already running|not configured)\.$# <span class="failure">\1</spa
S     0  9282  9279  1204   320 0:0   01:37 00:00:00 {busybox} sed -e     s/&/\&amp;/g    s/</\&lt;/g    s/>/\&gt;/g    s/'/\'/g    s/"/\&quot;/g

Marcus
 
Die Ausgabe musst du mit "> /dev/null 2>&1" ins Nirvana umleiten. Die hängenden Prozesse kommen daher, dass durch deinen Aufruf der Perl-Prozess nicht richtig in den Hintergrund geht (zumindest nicht so wie man es von einem Daemon erwartet). Die Filedescriptoren bleiben offen und deshalb bleibt das hängen. Du kannst also probieren die FDs zu schließen, dazu ist evtl. noch < /dev/null zusätzlich als Parameter nötig oder du verwendest die busybox start-stop-daemon Funktion.

Gruß
Oliver
 
Danke für die Tipps - habe nun Deine erste Idee umgesetzt, da der start-stop-daemon in der Standard-Busybox-Version kein --chdir kann, welches ich jedoch benötige, da meine Konfiguration von fhem auf relative Pfade zugreift.

Das Skript startet nun so wie es soll per WebGUI :) - habe es mal angehangen.
 

Anhänge

  • rc.fhem.txt
    2.5 KB · Aufrufe: 2

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,779
Beiträge
2,257,310
Mitglieder
374,814
Neuestes Mitglied
soundworx
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.