【发布时间】:2022-08-21 17:05:16
【问题描述】:
大家好,我在 Node.js 中使用 Discord.js 运行一个不和谐机器人。我的目标是通过 pm2 在 Linux Ubuntu 服务器上运行它。
我想建立一个清理过程前退出程序未捕获的异常.
但是,当我抛出一个示例错误时和通过 pm2 运行它未捕获的异常未达到,pm2 只是记录错误并继续运行脚本。当直接使用 Node.js 运行它时,没有 pm2 一切都按预期工作。
这是我的代码:
process.on(\'uncaughtException\', async (err, origin) => {
console.log(\'test\')
// await Cleanup();
process.exit(1);
});
这里是使用 pm2 运行的控制台输出:
Error: Test error
at Object.execute (script xxxx)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async xxx
如您所见, pm2 有点防止测试错误达到未捕获的异常. Pm2 没有重新启动脚本,也没有记录 \'test\'
我还尝试通过以下方式捕获错误信号情报或者SIGTERM但这些都不起作用。
pm2 中是否有禁用此行为的选项?
谢谢你的帮助!
标签: javascript node.js pm2