Подтвердить что ты не робот

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 из командной строки; он просто зависает, как вы ожидали бы, потому что подкоманда ждет ввода.

Когда я устанавливаю этот 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?

4b9b3361