【问题标题】:Node.js PM2 log : App [server:0] exited with code [0] via signal [SIGKILL]Node.js PM2 日志:应用程序 [server:0] 通过信号 [SIGKILL] 以代码 [0] 退出
【发布时间】:2020-03-15 18:35:16
【问题描述】:

在我的 Node.js 应用程序中,我调用了一个外部 API,它需要 7 多分钟才能得到响应,与此同时我得到了这个:

PM2 日志:应用程序 [server:0] 通过信号 [SIGKILL] 以代码 [0] 退出

并且进程被杀死。

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    通常在网络上等待一分钟已经是一种信号。 Chrome 标准超时为 3 分钟,所以我认为您绝对应该检查您的服务器是否在您对外部 API 的请求中没有抛出超时错误。

    服务器编写的另一个好习惯是让它永远不会因错误而崩溃,总是用 try catch 包装所有内容,使用验证来捕获错误并发送回一些准备好的响应,或者在最坏的情况下只是在服务器控制台中输出错误,但仍然在此之后使服务器可用于证明其他请求。

    PM2 是守护进程,但它仅在您的服务器有时崩溃并需要启动时才有用,如果它经常崩溃 pm2 没有用,您需要修复您的服务器。

    想一想,还要检查该请求是否占用过多资源来处理,如果系统耗尽资源,它将杀死您的进程。

    【讨论】:

    • 嘿,我在 pm2 上使用了 4 个节点服务器集群。会因为我的机器无法处理 4 个集群而发生这种情况吗?
    【解决方案2】:

    这解决了我的问题。

    首先停止并删除您当前正在运行的 PM2 应用程序。

    pm2 stop <app name>

    pm2 delete <app name>

    然后执行以下命令:

    pm2 kill

    rm -rf ~/.pm2

    现在再次启动您的应用并查看日志。

    pm2 start <app name>

    pm2 logs

    【讨论】:

    • 我当时想“我到底为什么需要“rm -rf ~/.pm2”?”然后真的解决了我的问题,谢谢!
    • 我很高兴它有帮助!
    猜你喜欢
    • 2023-04-10
    • 2020-12-28
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多