node.js child_process.spawn ошибка ENOENT - только под наблюдением
Я запускаю команду с Node.js, используя child_process.spawn:
#!/usr/bin/js
var spawn = require("child_process").spawn;
var stockfish = spawn("stockfish");
Это работает нормально, используя$js spawntest.js
из командной строки; он просто зависает, как и следовало ожидать, потому что подкоманда ожидает ввода.
Когда я настраиваю этот скрипт как программу-супервизор, он не работает:
$ sudo supervisorctl start spawntest
spawntest: ERROR (abnormal termination)
Вот содержимое выходного журнала stderror, который супервизор хранит в /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)
Программа supervisorctl настроена так:
[program:spawntest]
command=/home/gus/dev/spawntest.js
autostart=false
autorestart=false
user=gus
Почему это терпит неудачу только под наблюдателем? Существуют ли какие-либо модули / глобальные переменные Node.js и т. Д., Которые я могу использовать, чтобы увидеть разницу между вызовом сценария напрямую и через Supervisor?