简体   繁体   中英

How to restart PM2 using cron?

I need to find a cron command that would restart pm2 with a process but only if it's not already running

pm2 start app.js starts the app even if it's already running.

what would be another command I could use that would only restart app.js if it's not already running and how would I write it in crontab?

There is no default way in pm2 to achieve this instead of that you can write a shell script for that.

#!/bin/bash

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

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

Save this shell script as pm2_starter.sh and then

crontab -e

and add following there

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

this will run it every 30 minutes.

Here the script will restart if app is running under pm2 and else it will start it. You are smart enough to edit that as per your use case

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM