У меня проблема с Героку. Я пытаюсь запустить внешнюю программу, используя child_process execFile . Я предоставляю файл как Windows и Linux исполняемый файл, и он находится в root. Сервер выдает мне следующую ошибку, которую я не получаю локально:
Журнал:
2020-01-05T23:00:41.621845+00:00 app[web.1]: Error: spawn ./thecl EACCES
2020-01-05T23:00:41.621848+00:00 app[web.1]: at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
2020-01-05T23:00:41.621851+00:00 app[web.1]: at onErrorNT (internal/child_process.js:456:16)
2020-01-05T23:00:41.621853+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:80:21) {
2020-01-05T23:00:41.621855+00:00 app[web.1]: errno: 'EACCES',
2020-01-05T23:00:41.621857+00:00 app[web.1]: code: 'EACCES',
2020-01-05T23:00:41.621859+00:00 app[web.1]: syscall: 'spawn ./thecl',
2020-01-05T23:00:41.621861+00:00 app[web.1]: path: './thecl',
2020-01-05T23:00:41.621864+00:00 app[web.1]: spawnargs: [],
2020-01-05T23:00:41.621866+00:00 app[web.1]: cmd: './thecl'
2020-01-05T23:00:41.621868+00:00 app[web.1]: }
Индекс. js:
var exec = require('child_process').execFile;
...
exec('./thecl', function callback(err, data){...}
Я основал свои попытки на этом ответе S / O: Как выполнить внешнюю программу из Node.js?