node.js child_process.spawn ENOENT-Fehler - nur unter Aufsicht
Ich führe mit Node.js einen Befehl mit child_process.spawn aus:
#!/usr/bin/js
var spawn = require("child_process").spawn;
var stockfish = spawn("stockfish");
Dies funktioniert gut mit$js spawntest.js
von der Kommandozeile; Es hängt nur so, wie Sie es erwarten würden, da der Unterbefehl auf Eingaben wartet.
Wenn ich dieses Skript als Supervisord-Programm einrichte, schlägt dies jedoch fehl:
$ sudo supervisorctl start spawntest
spawntest: ERROR (abnormal termination)
Hier ist der Inhalt des Stderror-Ausgabeprotokolls, das Supervisor in /var/log/supervisor/spawntest-stderr---supervisor-RyULL0.log speichert:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Das supervisorctl-Programm ist folgendermaßen konfiguriert:
[program:spawntest]
command=/home/gus/dev/spawntest.js
autostart=false
autorestart=false
user=gus
Warum schlägt dies nur unter Supervisor fehl? Gibt es Module / globale Variablen von Node.js usw., mit denen ich die Unterschiede zwischen dem direkten Aufrufen eines Skripts und dem Aufrufen über Supervisor feststellen kann?