请问,pm2定时任务未能重启
描述:
pm2来定时执行一个邮件发送程序,如果程序是通过process.exit来退出的,就无法重新启动。而如果是正常退出的则能定时启动
ecosystem.json
配置如下:
{
"apps": [{
"name": "index",
"script": "index.js",
"error_file": "err.log",
"out_file": "out.log",
"merge_logs": true,
"log_date_format": "YYYY-MM-DD HH:mm Z",
"min_uptime": 100,
"cron_restart": "* * * * *",
"autorestart": false
}
]
}
5 回复
pm2这个特性没有用过,如果不能解决的话,可以使用linux自带的crontab来定时执行任务,参考文档 http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
autorestart不应该设置为true才会自动重启吗
@imhered autorestart设置false同时设置cron是会自动启动的。内在机制不太清楚。
猜测process.exit
会让pm2认为是主动退出,auto_restart
则是针对程序出错的重启。 pm2的cron用于重启,为了释放内存之类的,而不是为了做定时任务。
改成程序里做定时了。
@fancylife 本来想既然有这个特性就直接用了…现在是用node的cron
包,因为对linux不太熟悉就直接找个库来用了,有时间再学习下linux的命令
还是不要依赖pm2做特殊的事情, 比如ftp部署, 还有你这里的定时任务. 比如, 指不定哪天你们要上k8s了, 就不需要pm2了. 推荐你个库node-schedule