Der ganze Sinn von FastCGI besteht darin, für jede eingehende Verbindung keinen neuen Prozess zu erzeugen. Aufgrund der Natur der Sprache wird ein Shell-Skript während seiner Ausführung viele Prozesse hervorbringen, es sei denn, Sie wollen sich stark einschränken. (Nr. cat
, awk
, sed
, grep
, usw., usw.). Wenn Sie also von Anfang an Shellscript verwenden, können Sie anstelle von FastCGI auch reguläres CGI verwenden.
Wenn Sie bestimmt sind, ist die erste große Hürde, dass Sie accept()
Verbindungen auf einer hörenden Steckdose vom Webserver bereitgestellt werden. Soweit ich weiß, gibt es kein UNIX-Tool, das dies tut. Jetzt könnten Sie einen in einer anderen Sprache schreiben und Ihr Shellskript einmal für jede eingehende Verbindung ausführen. Aber das ist genau das, was normales CGI tut, und ich garantiere, dass es es besser macht als das benutzerdefinierte Programm, das Sie oder ich schreiben würden. Also, bleiben Sie bei normalem CGI, wenn Sie Shellscript verwenden möchten.
Was ist mit netcat 'nc -k -l 0.0.0.0 10000> out.txt'? – ton
Das ist netcat, das seinen eigenen Sockel öffnet, um zu hören. Wenn Netcat so etwas unterstützt, würde der Befehl mehr wie 'nc -k -l/dev/fd/3' aussehen, wobei der Datei-Deskriptor 3 vom Webserver an das Skript übergeben wurde. – Jander