如果PM2重新启动的次数超过“ max_restarts”(每次重新启动的持续时间少于“ min_uptime”),则它将标记为“错误”的过程状态。也许在其他情况下也会发生。
如果发生一系列致命错误,我想采取行动。就我而言,我想重新启动整个计算机,因为这意味着发生了一些可怕的事情。这可能吗?
注意:我现在看到以编程方式使用PM2时可以执行此操作(请参见下面的答案)。有没有办法通过CLI自动执行此操作?类似githook的东西,它会在出现“错误”状态时自动运行。
答案 0 :(得分:0)
如果以编程方式使用PM2,则可以使用此功能:
pm2.describe(process,errback)
它返回'processDescription',其中包括'pm2_env',其中包括'status',将显示'errored'。
这可能为其他人回答了这个问题,但对我却没有回答,因为我想通过CLI调用而不是在另一个节点脚本中使用PM2。
答案 1 :(得分:0)
这个问题已经很老了,但是我遇到了同样的问题,如今,有一个CLI解决方案:
您可以使用pm2 jlist
以JSON格式获取当前进程列表,并使用jq进行解析。要搜索状态为“错误”的pm2管理的所有进程,可以调用以下命令:
pm2 jlist | jq '.[] | {"name": .name, "status": .pm2_env.status} | select(.status=="errored")'