【发布时间】:2018-02-28 14:50:50
【问题描述】:
寻找特殊问题的帮助。每次我停止并重新启动服务器时,都会收到以下消息:
Jim@Jim-PC MINGW64 ~/nodeProjects/express-locallibrary-tutorial
$ npm start
> express-locallibrary-tutorial@0.0.0 start C:\Users\Jim\nodeProjects\express-locallibrary-tutorial
> node ./bin/www
Port 3300 is already in use
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! express-locallibrary-tutorial@0.0.0 start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the express-locallibrary-tutorial@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Jim\AppData\Roaming\npm-cache\_logs\2017-09-19T17_39_10_578Z-debug.log
我将端口更改为 3301,它可以工作。我停止并重新启动服务器并收到 3301 已在使用中的错误。我将端口更改为 3302,它可以工作。停止并启动并得到 3302 已在使用中的错误。
几天前我在另一个应用程序上停止使用 nodemon 来解决同样的问题,它也停止了。对于这个应用程序,我安装了 nodemon,但不是全局安装,遇到问题并将其卸载。但问题依然存在。
如果有人遇到此问题,我将不胜感激。
【问题讨论】:
-
如果您在 Windows 上,请检查任务管理器以查看是否有任何其他节点进程正在运行。如果您在 *nix 上,请运行
ps -A | grep node以查看哪些节点进程仍在运行。 -
如果您使用的是 MING64,您应该在 Windows 的 cmd.exe 中尝试 this thread
-
感谢您的回复。我使用 Bash 和命令提示符。
C:\> netstat -a返回大约 45 个 127.0.0.1 引用,但没有一个包含我一直在使用的端口。我一直在使用的一些在本地地址 0.0.0.0 下列出。我看到 0.0.0.0:3000、0.0.0.0:3300、0.0.0.0:3302、0.0.0.0:3303。每个人的外国地址是 Jim-PC,(我的机器),并且状态是“正在侦听”。逐渐回暖?我不明白我正在查看的内容的含义,但看到端口号表明我的 PC 正在使用并保存 0.0.0.0:port#,并处于“正在侦听”状态。如果是这样,如何解决? -
您的应用程序中的某些东西正在生成您的服务器,然后在您的应用程序关闭时不会自行清理。您需要发布您的服务器创建代码以尝试找出导致此问题的原因。要解析占用的端口,请使用
netstat -a -b列出端口和使用它的可执行文件。然后使用进程管理器杀死有问题的进程。 -
@gogaz 提供的链接有命令 --netstat -aon |查找 /i “听”。它只返回正在收听的内容,因此列表更易于管理。我运行了 netstat -a -b,它返回了一个很长的列表。此评论框不允许我复制屏幕截图。我不知道如何使用进程管理器来杀死任何东西。我上面列出的 0.0.0.0 包括这个列表中的 node.exe。