linux - 在 node.js 重新启动之前文件/目录不会删除

标签 linux node.js redhat fs pm2

我有一个大型的 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 以某种方式保持文件打开,这可能吗?

最佳答案

fs.createWriteStream需要手动 fs.close()fs.createReadStream也需要它,除非你设置了 autoClose 选项,然后一直读取文件直到结束或错误。

关于linux - 在 node.js 重新启动之前文件/目录不会删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34523715/

相关文章:

javascript - 以编程方式为我的环境中的环境键声明 typescript 类型

linux - 即使在 session 超时后如何使 spring-boot 应用程序保持事件状态

android - 如何解决在 Android/Eclipse 中执行 aapt 时出错?

c - execvp 导致内存问题

node.js - Node 上mongodb的纯javascript客户端?

mysql - 在 OpenShift 上连接 MySQL 的问题

linux - 通过互联网在 rhel5.1 中进行 yum

linux - 当我在命令提示符中输入 "Desired=Unknown/Install/Remove/Purge/Hold"时, "dpkg -l"是什么意思?

php - 查找具有 4 种模式的 php 文件

javascript - 在 <% 标签内交织 EJS 和 Javascript 变量