2016-05-06 5 views
0

Mein Apache-Server führt eine CGI-Bin und liest die ausgegebenen Zeilen zu stdout. Die Sache ist, dass jedes Mal, wenn der cgi-bin ausgeführt wird, einige Zeilen vorhanden sind, die auf das Laden der API-dynamischen Bibliothek zurückzuführen sind. Apache kann nun diese 3 Zeilen nicht mehr von HTTP-Anfragen unterscheiden, um mein Streaming zu initiieren. Es gibt eine Möglichkeit, Apache überspringt die Zeilen, die es nicht funktioniert oder um zu verhindern, dass die freigegebenen Bibliotheken seine Lasten drucken?So machen Sie Apache überspringen bestimmte Stdout Zeilen bei der Ausführung CGI oder stop Shared Library vom Drucken zu Stdout

Antwort

0

Wenn Ihre Website tut weniger als ein paar Anfragen pro Sekunde, können Sie einen einfachen Hack verwenden, indem Sie Ihre CGI mit einem Shell-Skript Einwickeln, dass das Problem Linien herausfiltert:

- setzen Sie den Code unten in Ihrem neuen cGI-Skript und stellen Sie sicher, chmod +x - Test, indem sie es manuell in dem Shell ausgeführt -

#! /bin/bash 
/path/to/old-cgi | egrep -v troublestring1\|troublestring2\|troublestring3 

Sie müssen sicherstellen, dass die Schwierigkeiten Saiten einzigartig genug sind, um nie rechtmäßig in Ihrer realen Ausgabe erscheinen. Wenn Sie solche Zeichenfolgen nicht finden können, benötigen Sie möglicherweise ein ausgefeilteres Parsing-Skript anstelle des Filters.

+0

Danke, es hat mir geholfen, aber es hat mein Problem nicht gelöst, wie ich es erwartet hatte. –