Я запускаю команду с Node.js с помощью child_process.spawn:
#!/usr/bin/js
var spawn = require("child_process").spawn;
var stockfish = spawn("stockfish");
Это отлично работает, используя $js spawntest.js
из командной строки; он просто зависает, как вы ожидали бы, потому что подкоманда ждет ввода.
Когда я устанавливаю этот script вверх как программу супервизора, он не работает:
$ 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 модули/глобальные переменные и т.д. Я могу использовать, чтобы узнать, какие различия существуют между вызовом script напрямую и через Supervisor?