【发布时间】:2023-01-19 08:12:03
【问题描述】:
我运行的 Ubuntu 服务器突然满了,因为 pm2 日志占用了 16GB。我试过pm2 flush。但这只会清除占用 4GB 的文件夹。
以 root 身份清除“.pm2”文件夹,但不清除日志文件夹。作为我自己的用户,该文件夹已被清除,但用户名错误。
这里显示在 root 和 admin 用户中运行pm2 flush。
我该如何清除它?
【问题讨论】:
-
到目前为止你有解决方案吗?
我运行的 Ubuntu 服务器突然满了,因为 pm2 日志占用了 16GB。我试过pm2 flush。但这只会清除占用 4GB 的文件夹。
以 root 身份清除“.pm2”文件夹,但不清除日志文件夹。作为我自己的用户,该文件夹已被清除,但用户名错误。
这里显示在 root 和 admin 用户中运行pm2 flush。
我该如何清除它?
【问题讨论】:
你应该尝试 pm2 flush <app_name> 它会从 .pm2/logs 中删除默认输出和错误日志
上面的命令不会刷新指定 app_name 的合并日志
【讨论】:
希望我还不算太晚。好吧,长话短说。
问题出在代码中,传递的参数没有正确实现以处理他们想要的任何逻辑比较或验证。因此,日志不会被刷新。
我创建了一个 PR,您可以访问 here。我认为维护者需要一些时间来审查拉动。它甚至可能根本不会合并。
无论如何,如果您想将更新后的代码应用到您的系统并对其进行测试。您需要找到您的 PM2 包文件所在的位置。
为此,只需根据您用于安装 pm2 的包管理器运行命令即可。
注意:如果您使用sudo 安装了 pm2,则您也必须使用sudo 运行命令。
纱 => yarn global dir
npm => npm root -g
之后,cd进入命令返回的目录路径。
然后cd变成<..PATH..>/node_modules/pm2/lib/API。您应该会看到一个名为 LogManagement.js 的文件。使用sudo cp 制作该文件的副本。所以如果有任何问题,你仍然可以回头。
接下来,转到这个 github link,并将整个 LogManagement.js 替换为复制的代码。
完毕!您应该能够像往常一样运行pm2 flush "My App" 或pm2 flush 1 之类的东西。
【讨论】: