You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PM2 cron_restart配置异常:每周任务变为每5-6分钟执行

问题原因与解决办法

为什么会频繁重启?

你的R脚本是一次性执行任务,运行完毕就会退出,但pm2默认开启了autorestart: true,它会把进程退出判定为崩溃,自动反复重启——每5-6分钟就是pm2默认的重启间隔。而你用的cron_restart是用来重启正在运行的常驻进程的,根本不适合触发一次性脚本的定时执行。

另外注意配置里的name字段拼写错误(my-R-sctipt应为my-R-script),虽然不影响功能,但建议修正避免混淆。

正确配置方案

方案1:修改现有配置,关闭自动重启

给配置加上autorestart: false,这样脚本执行完后pm2不会自动重启,只在cron_restart指定的时间触发执行:

module.exports = {
    apps : [{
        name: "my-R-script",
        script: "../my-R-script.R",
        instances: 1,
        exec_mode: "fork",
        out_file: "/dev/null",
        error_file: "/dev/null",
        interpreter: "Rscript",
        cron_restart: "0 0 * * 5",
        autorestart: false // 关键:关闭自动重启
    }]
};

方案2:用pm2原生定时任务(更推荐)

直接用cron字段(不是cron_restart)来指定定时执行时间,专门适配一次性任务场景:

module.exports = {
    apps : [{
        name: "my-R-script",
        script: "../my-R-script.R",
        interpreter: "Rscript",
        cron: "0 0 * * 5", // 直接设置定时执行时间
        autorestart: false,
        out_file: "/dev/null",
        error_file: "/dev/null"
    }]
};

生效步骤

  1. 先删除旧进程:pm2 delete my-R-script
  2. 启动新配置:pm2 start ecosystem.config.js
  3. 可以用pm2 logs my-R-script查看日志,验证只有每周五0点会执行一次,不会再频繁重启

内容的提问来源于stack exchange,提问作者Sebastian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:45:07