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.