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

PM2 ecosystem.config.js中ignore_watch配置致应用频繁重启问题

解决PM2 ecosystem.config.js中ignore_watch配置无效的问题

核心问题分析

  1. 手动配置ignore_watch会覆盖PM2默认的忽略列表,所以pm2 start index.js --watch默认自动忽略的目录(比如.pm2、.vscode_server),在自定义配置里必须手动添加才能生效。
  2. 正则表达式转义错误:JS字符串中反斜杠\是转义符,要传递给PM2匹配.(正则元字符),必须写成\\.,否则.会被当成匹配任意字符,而非实际的点号。
  3. 数组元素格式错误:每个数组元素是独立的正则规则,不能用逗号分隔多个规则,否则会被当成一个完整的正则表达式(比如".*config.js,package-lock.json"会匹配包含逗号的路径,完全不符合预期)。

正确的配置示例

module.exports = {
  apps : [{
    name: "appname",
    script: "./index.js",
    watch: true,
    max_memory_restart: "1G", // 修正原拼写错误:max_mamory_restart → max_memory_restart
    ignore_watch: [
      // 忽略隐藏目录及子文件
      "\\.pm2/**",
      "\\.vscode_server/**",
      "\\.bashrc",
      "\\.bash_history",
      "\\.bash_logout",
      "\\.cache/**",
      "\\.config/**",
      "\\.gitignore",
      "\\.lesshst",
      "\\.local/**",
      "\\.npm/**",
      "\\.profile",
      "\\.sudo_as_admin_successful",
      // 忽略临时文件、依赖及日志等
      ".*\\.swp",
      "snap/**",
      ".*config.js",
      "package-lock.json",
      "node_modules/**",
      "jira/**",
      "logs/**"
    ]
  }]
}

关键注意事项

  • 用/**后缀匹配目录下所有子文件和子目录,确保目录内任何变更都不会触发重启。
  • 如果不确定哪些路径触发重启,可以执行pm2 logs查看实时日志,找到触发重启的路径后,针对性添加到ignore_watch中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:45:29