Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Restart pm2 app every 12h with cron

Tried this, but it doesn't work:

SHELL=/bin/bash
PATH=/usr/lib/node_modules/pm2/bin
* 0,12 * * * pm2 restart all

What am I doing wrong?

like image 403
Nitor Avatar asked May 29 '16 20:05

Nitor


Video Answer


2 Answers

Edit cron with crontab -e and add the following:

0 */12 * * * /usr/bin/node /usr/bin/pm2 restart all

For the schedule, use 0 */12 * * * for every 12 hours, or 0 0,12 * * * for 0:00 and 12:00 specifically. (Your schedule, * 0,12 * * *, would trigger every minute of hour 0 and hour 12, 0:00, 0:01, 0:02...)

For the command, as fedorqui mentioned, use the path to node followed by the path to pm2 and the pm2 options. Use which node and which pm2 to get the path to node and pm2.

like image 182
shawncampbell Avatar answered Oct 10 '22 18:10

shawncampbell


Among multiple restart strategies, PM2 can restart application based on a cron format via the option --cron-restart

Restart app every midnight:

pm2 start app.js --cron-restart="0 0 * * *"

For more information check out the doc:

https://pm2.keymetrics.io/docs/usage/restart-strategies/#restart-at-cron-time

like image 38
Unitech Avatar answered Oct 10 '22 17:10

Unitech