我有一个节点应用程序,使用child_process来获取一个非常大的文件。尽管设置了相关选项(或者我认为,它似乎只是因为理由而终止' null'如果我手动运行命令它很好。(。js / event thread继续运行,所以不是那样。' ...'是编辑的网址)
const spawn = require('child_process').spawn;
var options = {stdio: 'ignore', detatched: true};
var ls = spawn('wget', ['http://...', '-O', './file.sav'], options);
console.log("PID is ", ls.pid);
ls.unref();
答案 0 :(得分:0)
最终计算出来。我在监视模式下运行pm2(进程管理器)。这是每次wget开始写入磁盘时重新启动Node应用程序!
有趣的是,这是在写入磁盘的开始时发生的,而不是等待wget完成写入文件。此外,它很快,即使代码没有重新启动过程,也没有及时发生以保存流程结束Node节点。
通过在pm2的配置中排除正在写入的目录来解决问题。