CNode

请问,pm2定时任务未能重启

问答
Iidsaynever发布于9 年前最后回复9 年前5 回复6585 浏览0 收藏

描述: 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)

I
im-here#1·9 年前

autorestart不应该设置为true才会自动重启吗

X
xiaozhongliu#2·9 年前

还是不要依赖pm2做特殊的事情, 比如ftp部署, 还有你这里的定时任务. 比如, 指不定哪天你们要上k8s了, 就不需要pm2了. 推荐你个库node-schedule

F
fancylife#3·9 年前

pm2这个特性没有用过,如果不能解决的话,可以使用linux自带的crontab来定时执行任务,参考文档 http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

I
idsaynever#4·9 年前

@imhered autorestart设置false同时设置cron是会自动启动的。内在机制不太清楚。 猜测process.exit会让pm2认为是主动退出,auto_restart则是针对程序出错的重启。 pm2的cron用于重启,为了释放内存之类的,而不是为了做定时任务。 改成程序里做定时了。

I
idsaynever#5·9 年前
引用 fancylifepm2这个特性没有用过,如果不能解决的话,可以使用linux自带的crontab来定时执行任务,参考文档 http://linuxtools rst.readthedocs.io/zh CN/...

@fancylife 本来想既然有这个特性就直接用了...现在是用node的cron包,因为对linux不太熟悉就直接找个库来用了,有时间再学习下linux的命令

参与回复
登录后即可参与回复。登录