我有一个简单的服务器运行在node.js使用连接:

var server = require('connect').createServer();
//actions...
server.listen(3000);

在我的代码中,我有实际的处理程序,但这是基本的思想。我一直遇到的问题是

EADDRINUSE, Address already in use

我收到这个错误时再次运行我的应用程序后,它以前崩溃或错误。因为我没有打开一个新的终端实例,所以我用ctr + z关闭了这个进程。

我非常确定我所要做的就是关闭服务器或连接。我尝试在进程中调用server.close()。(“退出”,…);运气不好。


当前回答

下面是一行代码(将3000替换为端口或配置变量):

kill $(lsof -t -i:3000)

其他回答

Linux

运行ps并确定节点进程的PID。

然后执行sudo kill PID

窗户

使用tasklist显示正在运行的进程列表:

tasklist /O

然后,像这样(使用tasklist命令获得的PID)杀死节点进程:

taskkill /pid PID

windows用户:打开任务管理器,结束任务的nodejs.exe文件,可以正常工作。

对于像我这样的Visual Studio新手来说

您可能正在其他终端上运行该进程!

在Visual Studio中关闭终端后,终端就消失了。

我手动创建了一个新的,以为之前的已经销毁了。实际上,每次我点击New Terminal时,我实际上是在之前的终端上创建了一个新的终端。

所以我找到了第一个终端然后…瞧,我在那里运行服务器。

PowerShell \用户:

任务杀戮 /IM 节点.exe /F

ps aux | grep node
kill -9 [PID] (provided by above command)

描述:


Ps将给出进程状态,aux提供a:所有用户进程,u:用户自己的进程,x:所有其他未连接到终端的进程的列表。 管道符号:|将传递ps aux的结果以进行进一步操作。 Grep将从ps aux提供的列表中搜索所提供的字符串(在本例中为节点)。