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

如何强制nodemon在node进程退出后立即自动重启?

强制nodemon在进程任意终止场景下立即自动重启的配置方案

不需要依赖inotify文件监听能力,直接调整nodemon启动参数和规则即可实现进程退出、崩溃、调试断开等任意终止场景下无等待自动重启,同时适配远程SSH调试场景,具体配置如下:

  • 核心启动参数说明
    • --exitcrash:开启子进程崩溃时直接触发重启的逻辑,取消默认等待文件变更的停滞状态
    • --delay 0:将重启等待时延设为0,进程终止后立刻拉起新的node进程,无停顿
    • --ignore "*":让nodemon跳过所有路径的文件系统监听,彻底规避当前存储不支持inotify的独立问题,不会因监听初始化失败卡住
    • 启动node时--inspect-brk需要绑定0.0.0.0端口,不要默认绑127.0.0.1,否则本地Mac通过SSH端口转发无法连接到调试端口,本地转发命令直接执行ssh -L 9229:127.0.0.1:9229 远程机器用户名@远程机器IP即可。
  • 覆盖默认规则实现全场景重启
    nodemon默认在子进程以0状态码正常退出时不会触发重启,需要通过配置覆盖该规则,你可以选择直接在启动命令传参,或者在项目根目录新建nodemon.json配置文件固定规则:
    1. 直接命令行启动的参考命令:
    nodemon --exitcrash --delay 0 --ignore "*" --exec "node --inspect-brk=0.0.0.0:9229 你的项目入口文件路径"
    
    1. 固定配置文件方式,在nodemon.json写入以下内容:
    {
      "exec": "node --inspect-brk=0.0.0.0:9229 你的项目入口文件路径",
      "exitcrash": true,
      "delay": 0,
      "ignore": ["*"],
      "events": {
        "exit": "kill -USR2 $PPID"
      }
    }
    
    配置中绑定exit事件向nodemon主进程发送USR2信号强制触发重启,不管子进程是崩溃退出、正常退出、还是调试连接断开导致的进程终止,都会立刻触发重启逻辑,完全不需要等待文件变更。
  • 验证方式
    启动服务后手动杀掉node子进程,观察nodemon输出,会直接打印[nodemon] starting 'node --inspect-brk=...'日志,没有等待文件变更的停滞提示即为配置生效。

内容的提问来源于stack exchange,提问作者Matej 'Yin' Gagyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:39:18