【问题标题】:How to restart PM2 using cron?如何使用 cron 重启 PM2?
【发布时间】:2018-02-28 18:15:13
【问题描述】:

我需要找到一个 cron 命令,它可以用一个进程重新启动 pm2,但前提是它尚未运行

pm2 start app.js 启动应用程序,即使它已经在运行。

如果app.js 尚未运行,我可以使用的另一个命令是什么?我将如何在 crontab 中编写它?

【问题讨论】:

标签: node.js pm2


【解决方案1】:

在 pm2 中没有默认方法来实现这一点,您可以为此编写一个 shell 脚本。

#!/bin/bash

pm2 describe appname > /dev/null 
RUNNING=$?  

if [ "${RUNNING}" -ne 0 ]; then
    pm2 start ./yourscriptpath
else
    pm2 restart appname
fi;

将此shell脚本保存为pm2_starter.sh,然后

crontab -e

并在此处添加以下内容

 */30 * * * * ./home/ridham/stackoverflow/pm2_starter.sh

这将每 30 分钟运行一次。

如果应用程序在 pm2 下运行,脚本将重新启动,否则它将启动它。您足够聪明,可以根据您的用例进行编辑

【讨论】:

  • 谢谢!你为什么使用-ne?如果应用程序没有运行,我希望它启动,但如果它正在运行,我希望它不做任何事情。那么我会使用什么运算符呢? -eq 并删除 else 语句?
  • 另外,即使 pm2 正在运行 RUNNING 变量仍然是 0 所以它可能需要不同的检查?
  • 是的,如果在 pm2 列表中找不到应用程序,RUNNING 将返回非零值。
猜你喜欢
  • 2019-10-30
  • 2014-04-23
  • 2016-09-27
  • 1970-01-01
  • 2021-06-23
  • 2020-02-22
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多