node.js child_process.spawn erro ENOENT - apenas sob supervisão

Estou executando um comando com Node.js usando child_process.spawn:

#!/usr/bin/js

var spawn = require("child_process").spawn;

var stockfish = spawn("stockfish");

Isso funciona bem usando$js spawntest.js da linha de comando; apenas trava como você esperaria, porque o subcomando está aguardando entrada.

Quando eu configuro esse script como um programa supervisord, ele falha:

$ sudo supervisorctl start spawntest
spawntest: ERROR (abnormal termination)

Aqui está o conteúdo do log de saída stderror que o supervisor mantém em /var/log/supervisor/spawntest-stderr---supervisor-RyULL0.log:

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)

O programa supervisorctl está configurado assim:

[program:spawntest]
command=/home/gus/dev/spawntest.js
autostart=false
autorestart=false
user=gus

Por que isso está falhando apenas no Supervisor? Existem módulos / variáveis globais do Node.js. etc que posso usar para ver quais são as diferenças entre chamar um script diretamente e através do Supervisor?

questionAnswers(0)

yourAnswerToTheQuestion