#node.js #spawn
#node.js #порождение
Вопрос:
Я пытаюсь загрузить исполняемый файл с помощью Node.js и выполните его, как только файл будет загружен. Я должен запустить его с помощью этого spawn
метода, потому что я хочу, чтобы новый процесс был отключен. Это то, что я сделал:
var file = fs.createWriteStream("myex.exe")
http.get("http://host/myex.exe", function(response) {
response.pipe(file);
const subproc = spawn('myex.',['param1', 'param2'], {
detached: true,
stdio: 'ignore'
});
subproc.unref();
});
Проблема в том, что когда node.js пытается запустить исполняемый файл в новом процессе, возникает ошибка:
Error: spawn EBUSY
Я попытался выполнить таким же образом EXE-файл, не загружая его, и процесс создан правильно. Если я выполняю его с exec
помощью функции, он работает отлично, но я не могу отсоединить новый процесс. В чем проблема и какое может быть возможное решение?
Ответ №1:
я думаю, проблема в том, что файл занят, мой способ таков: используйте settimeout , подождите некоторое время, а затем используйте execFile