Windows环境下如何用Forever和Nodemon自动重启Node.js应用
解决Windows下Forever+Nodemon启动Node.js应用的崩溃重启问题
嘿,我之前在Windows 10上折腾Forever和Nodemon组合的时候也踩过这个坑!你用forever start nodemon --exitcrash app.js启动失败的核心原因是Forever没有正确识别你要执行的是Nodemon命令——它会把nodemon当成一个要运行的脚本文件,而不是启动Node应用的工具,自然就会报错。
下面给你两种靠谱的解决方案,按需选择:
方案1:正确组合Forever和Nodemon(兼顾文件变更重启+崩溃自动重启)
如果你既需要Nodemon监听文件变更自动重启,又需要Forever在应用崩溃时兜底重启,得用Forever的--command参数明确指定要执行的Nodemon命令:
forever start --command "nodemon --exitcrash" app.js
如果你的系统里直接输nodemon没法运行(全局包路径没进环境变量),就换成Nodemon的完整路径(一般在C:\Users\你的用户名\AppData\Roaming\npm\nodemon.cmd):
forever start --command "C:\Users\你的用户名\AppData\Roaming\npm\nodemon.cmd --exitcrash" app.js
这里的--exitcrash很关键:它让Nodemon在应用崩溃时直接退出进程,而不是一直尝试重启,这样Forever就能检测到进程退出,然后重新拉起Nodemon。
方案2:只用Forever实现崩溃重启(如果不需要文件变更监听)
如果你的需求只是应用崩溃后自动重启,其实单独用Forever就足够了,完全不需要Nodemon,直接运行:
forever start app.js
Forever本身就自带进程监控功能,一旦Node应用因为未处理异常退出,它会自动重启进程,而且在Windows下运行更稳定。
调试小技巧
如果还是遇到问题,可以用这些命令排查:
forever list:查看当前Forever管理的进程状态,确认应用是否被正确启动forever logs:查看Forever的日志,里面会记录启动失败的具体原因(比如找不到Nodemon路径、权限问题等)- 先单独运行
nodemon --exitcrash app.js:确认Nodemon本身能正常启动你的应用,再结合Forever
内容的提问来源于stack exchange,提问作者cleverpaul
相关产品推荐
相关产品推荐

