.titleBar { margin-bottom: 5px!important; }

[gelöst]Freetz-Webif bleibt hängen beim Aufruf eines Scriptes über die Package rc.x

Dieses Thema im Forum "Freetz" wurde erstellt von wonderdoc, 4 Nov. 2008.

  1. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 wonderdoc, 4 Nov. 2008
    Zuletzt bearbeitet: 4 Nov. 2008
    Hallo,

    Ich habe momentan ein Problem mit dem WebIf.
    Ich habe mir ein Packet gebastelt/erweitert.
    Dazu habe ich mir ein Watchdog-Script gebastelt, welches eine While-Schleife enthält, die dann zyklisch einen Daemon überwacht und ggf über die rc.* neustartet.
    Dazu rufe ich das Watchdog-Script in der start-routine der rc.* des Packages auf.
    Code:
    /tmp/flash/$DAEMON_WD & > /dev/null 2>&1
    Starte ich das Package "rc.* start" per Telnet, dann wird der Daemon und das Daemon-Watchdog Script ordnungsgemäß gestartet.
    Starte ich das Package nun aber über die Diensteverwaltung des WebIfs, dann bleibt das WebIf mit leeren Browserfenster hängen.
    Erst nachdem ich das Watchdog-Script manuell über Telnet kille, erscheint die WebIf-Seite(Freetz - Starte ....) wieder.

    Lt ps hängt da vermutlich was in der exec.cgi.
    Code:
     3164 root       1440 S   httpd -p 81 -c /mod/etc/httpd.conf -h /usr/mww/ -r Fr
     3165 root       1444 S   /bin/sh /usr/mww/cgi-bin/exec.cgi 
     3171 root       1444 S   /bin/sh /usr/mww/cgi-bin/exec.cgi 
     3172 root       1420 S   sed -e        s/&/\&amp;/g       s/</\&lt;/g       s/
    Es hängt auf jedem Fall mit dem Aufruf des Watchdog-Scripts zusammen.
    (Das Script läuft ja im Hintergrund in einer Schleife)
    Ist dieses eine bekannte Sache?
    Gibt es dazu ein Workaround?

    mfg
    Wonderdoc
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Schau dir mal dieses Changeset an. Evtl. musst du in deinem Skript die FDs schließen...

    MfG Oliver
     
  3. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 wonderdoc, 4 Nov. 2008
    Zuletzt bearbeitet: 4 Nov. 2008
    Hi Oliver,

    Ich habe momentan Freetz freetz-1.0-2342M auf der Box.
    Was genau meinst du mit FDs schließen?

    Oder meinst du einfach die Zeile "exec 1>&-;exec 2>&-" in mein Script einfügen?

    EDIT:

    Super, hat funktioniert.
    Ich habe die Zeile in meinen Watchdog-Script vor der While-Schleife eingefügt.
    Nun Funktioniert das WebIf bei Start des Packages wieder.

    Danke für die schnelle Hilfe.

    mfg
    Wonderdoc
     
  4. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es wäre übrigens geschickter, auf /dev/null umzuleiten, als die Dateien zu schließen.

    Anderenfalls können regulär geöffnete Dateien die Nummern 0 bis 2 bekommen, und das kann zu seltsamen Effekten führen. Ob und welche Probleme es gibt, hängt von den einzelnen Programmen ab, aber es ist sicherer, es nicht darauf ankommen zu lassen.
     
  5. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Sollten wir das im spindown-package auch ändern?

    MfG Oliver
     
  6. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es kann zumindest nicht schaden.

    Ob es nötig ist oder nicht ist schwer zu sagen, ohne sich das Programm in allen Details und allen möglicherweise auftretenden Konstellationen anzuschauen, daher wird generell empfohlen, die Dateien 0 bis 2 nicht zu schließen, sondern auf /dev/null umzulenken. Damit ist man auf der sicheren Seite, ob es nun notwendig ist oder nicht.
     
  7. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    Ist dann "exec 1 > /dev/null; exec 2 > /dev/null" richtig?

    mfg
    Wonderdoc
     
  8. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, auch wenn man es kürzer schreiben kann:
    Code:
    exec 1> /dev/null 2> /dev/null
    oder
    exec > /dev/null 2> /dev/null
    und ggf. auch noch stdin
    exec < /dev/null > /dev/null 2> /dev/null