【发布时间】:2016-04-04 02:02:34
【问题描述】:
我有一个大型 node.js 项目,它处理 linux redhat 文件系统相当多,并且由 PM2 管理。我正在使用 fs 和 rimraf 在 redhat AWS 临时驱动器上进行磁盘清理。
运行所有磁盘清理操作时,文件会被删除,但 node.js 会保持打开状态,直到重新启动。使用df 表明磁盘已满,但du 表明磁盘是干净的,这是有道理的。
据我了解,在使用fs时,如果使用fs.open,则需要调用fs.close,但这些功能从未使用过。我正在使用的 fs 操作是:
fs.writeFile
fs.readdirSync
fs.lstatSync
fs.existsSync
fs.mkdirSync
fs.chownSync
fs.unlink
fs.rmdirSync
fs.writeFile
fs.createReadStream
fs.createWriteStream
Rimraf 也被使用了,但是查看他们的代码,我认为这不是问题。
根据文档,我相信所有这些功能都会自行关闭,但如果有人知道我没有看到的内容,我们将不胜感激。
我的另一个担心是pm2 以某种方式保持文件打开,这可能吗?
【问题讨论】:
-
你使用的是哪个节点版本?
标签: linux node.js redhat fs pm2