node.js - 无法杀死 NodeJS 应用程序

标签 node.js loopbackjs

有一天,我的应用程序突然决定不死。

当我检查端口时按 ctrl + c 后,它仍然在那里,不仅在我的机器上,而且在 PM2 管理的服务器上,所以我每次都需要去那里手动终止进程。我试图在我的代码中查找问题,当我找不到时,我只是认为这只是依赖项错误之一,很快就会有修复。这有点烦人,但我可以使用kill -9 PID 来终止该进程,而且我的大部分任务都在前端完成,所以这并不是什么大问题。今天,一个多星期过去了,问题仍然存在。 我回顾了历史,选择了几周前所做的提交,一切都运行良好,将 NodeJS 从 5.1.0 切换到 4.2.1,清除了 npm 缓存,重新安装了所有依赖项,但我仍然看到问题。 我使用的是 LoopbackJS,但通常我只是用“node server/server.js”启动应用程序,然后就会发生上述问题,但如果我使用“slc run”,然后尝试用 ctrl + c 终止应用程序,它就会永远挂起,我的意思是我可以按 ctrl+c 任意多次,它仍然在控制台前台运行。

如果我不按 ctrl+c 来终止控制台中的选项卡,应用程序就会毫无问题地终止。

这是我在运行“lsof -i tcp:4000”后看到的结果,当时应用程序应该已经死了,但实际上并没有

lsof -i tcp:4000

编辑: 使用 Strongloop 进程管理器运行和终止它 - slc start/slc stop 工作正常,但在开发过程中使用运行 NodeJS 应用程序 (node server.js) 的正常方式会更方便,并且它不会改变存在一些问题的事实,最好不要将其隐藏在地毯下。

最佳答案

出于愤怒,我将我的应用程序剥离为最基本的元素。我逐个文件、一点一点地找到了答案。 罪魁祸首是 phantomJS - https://github.com/sgentle/phantomjs-node 。 PATCH 版本 0.8.2 引入了此错误。修复程序大约在一个月前创建,一周前合并,但尚未在 npm 上发布。

关于node.js - 无法杀死 NodeJS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879801/

相关文章:

json - Loopback 也创建了一个构建 json 模型的数据库结构

node.js - 在 Loopback.js 中,如何在不运行应用程序的情况下运行独立脚本?

javascript - Nodejs 请求返回行为不当

java - ant 通过 npm 安装 - 需要 node 0.8.0+ 但安装失败?

MySQL 回调和范围

loopbackjs - 环回查询 - 如何分组?

javascript - Loopback如何读取mongodb上的结果聚合

javascript - Loopback.io 多重包含模型查询条件

node.js - Express 中的查询参数

javascript 无法从网络驱动器运行