我有一个很大的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
以某种方式保持文件打开,这可能吗?
答案 0 :(得分:0)
fs.createWriteStream需要手动from config import db
host = db['db.host']
。 fs.createReadStream也需要它,除非您设置fs.close()
选项,然后一直读取文件直到结束或错误。