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

如何用PM2每5秒运行JS脚本及延迟启动配置咨询

PM2 配置问题解决方案

先帮你厘清核心误区:你当前配置的restart_delay是用来控制进程崩溃后重启的间隔,完全不是定时重复执行脚本的参数——这就是为啥脚本运行频率远高于预期的原因。下面针对你的两个问题逐一解答:

问题1:如何配置让脚本每5秒运行一次?

要实现定时重复执行脚本,你需要用到PM2的cron_restart配置项,它支持秒级cron表达式(格式为秒 分 时 日 月 周)。

针对每个app配置,添加cron_restart: "*/5 * * * * *"就能让脚本每5秒自动重启执行一次。同时注意两点:

  • 确保你的脚本是一次性执行任务(跑完就主动退出),这样PM2才会按cron规则重启它;如果脚本是常驻进程,这个配置不会生效。
  • 建议去掉watch: true,因为watch是监听文件变化触发重启,会和定时重启规则冲突,导致不必要的额外启动。

修改后的单个app配置示例:

{
  name : "deploy",
  script : "deploy.js",
  cron_restart: "*/5 * * * * *", // 每5秒重启执行一次
  instances: 1,
  cwd: '/usr/share/sails/scripts/',
  log_date_format: 'YYYY-MM-DD HH:mm Z',
  out_file: '/usr/share/sails/scripts/deploy.log',
  error_file: '/usr/share/sails/scripts/deploy.log',
  exec_mode: 'fork',
  env: {
    "NODE_ENV": "development",
  },
  env_production : {
    "NODE_ENV": "production"
  }
}

问题2:如何让脚本在pm2 start后延迟20秒启动?

直接在每个app的配置中添加delay_start参数即可,它的单位是毫秒,设置为20000就对应延迟20秒启动。

示例配置片段:

{
  name : "deploy",
  script : "deploy.js",
  delay_start: 20000, // 延迟20秒启动
  // 其他原有配置...
}

如果你的脚本需要等待依赖服务就绪后再启动,还可以配合wait_ready: true和listen_timeout做更灵活的就绪检测,但单纯的启动延迟需求用delay_start就足够了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:53:54