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

wonderdoc

Mitglied
Mitglied seit
16 Aug 2006
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
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
 
Zuletzt bearbeitet:

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Schau dir mal dieses Changeset an. Evtl. musst du in deinem Skript die FDs schließen...

MfG Oliver
 

wonderdoc

Mitglied
Mitglied seit
16 Aug 2006
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
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
 
Zuletzt bearbeitet:

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
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.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Sollten wir das im spindown-package auch ändern?

MfG Oliver
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
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.
 

wonderdoc

Mitglied
Mitglied seit
16 Aug 2006
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
Hallo,

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

mfg
Wonderdoc
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,355
Beiträge
2,021,492
Mitglieder
349,917
Neuestes Mitglied
pm3000