使用Node.js下载并执行.exe文件时发生EBUSY错误



我正在尝试用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函数执行它,它可以很好地工作,但我无法分离新进程。问题是什么,可能的解决方案是什么?

我认为问题是文件被占用了,我的方法是,使用settimeout,等待一段时间,然后使用execFile

相关内容

最新更新