我需要找到一个cron命令,它可以用一个进程重新启动pm2,但前提是它还没有运行
即使应用程序已经在运行,pm2 start app.js也会启动它。
我可以使用的另一个命令是什么,它只在app.js尚未运行时重新启动它,以及如何在crontab中编写它?
发布于 2018-02-28 18:15:13
在pm2中没有默认的方法来实现这一点,相反,您可以为此编写一个外壳脚本。
#!/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下运行,脚本将重新启动,否则将启动它。您足够聪明,可以根据您的用例对其进行编辑
https://stackoverflow.com/questions/49026393
复制相似问题