nginx lua: os.execute waitpid () fehlgeschlagen (10: Keine untergeordneten Prozesse)

7

Ich versuche also, bei jeder Anfrage ein Skript auszuführen. Ich weiß, wie das klingt, das ist für die Entwicklungsumgebung.

Ich habe dies zu meiner Nginx-Konfiguration hinzugefügt access_by_lua_file "/opt/nginx/git-magic.lua";

git-magic.lua enthält local status = os.execute('/opt/nginx/git-magic.sh')

Und git-magic.sh enthält: echo hello >> /tmp/git-magic

Das Problem ist:

Immer wenn ich eine URL drücke, wird im Nginx-Fehlerprotokoll Folgendes angezeigt: 2012/09/27 15:35:48 [alert] 3241#0: waitpid() failed (10: No child processes)

Irgendwelche Ideen, was ich falsch machen könnte?

Andrei Serdeliuc
quelle
wow ... ich habe genau das gleiche Problem und dachte, ich würde verrückt ... Ich suche schwer zu sehen, ob ich eine Antwort finden kann ...
Ich habe auch das gleiche Problem !!
Sabya
Hast du das Offensichtliche überprüft? Kann der Nginx-Benutzer auf die Lua-Datei zugreifen? Kann ein Nginx-Benutzer in / tmp / schreiben?
c2h5oh
Lua kann auf git-magic.sh zugreifen, git-magic.sh schreibt das Richtige an / tmp / git-magic
Andrei Serdeliuc
Überprüfen Sie, ob es eine apparmor.d-Datei für nginx gibt. Ich hatte ein Problem damit, dhcpd davon zu überzeugen, eine Datei auszuführen, wenn eine Adresse angefordert wird, weil Apparmor sie blockiert hat.
Tom O'Connor

Antworten:

0

Die lua-resty-shell behauptet, dieses Problem durch die Bereitstellung eines nicht blockierenden os.execute-Äquivalents zu lösen.

Frederik
quelle