Disclamer:我是一个完全的初学者,所以请耐心等待我,我不知道如何命名我的问题,所以检查网络的答案很麻烦。
我的端口有问题。
问题: 我通过以下命令启动rails服务器:
rails s -p 3500
另一台计算机使用它。但是当服务器挂起(关闭终端并关闭服务器)时,它无法通过同一端口启动rails服务器。 抱怨(并声称)多个套接字使用。我们非常确定*没有其他人使用相同的端口。
急救:要使服务器运行,我们重新启动计算机或将端口更改为3501。 这很麻烦。
假设: 似乎它将端口连接起来。
Here I found another work around (quoted below)
在任务管理器中找到ruby.exe进程并完成它
有没有更简单的方法来解决这个问题? 我没有尝试上面的方便工作,但我相信这会奏效。
现在,回到我的主要问题: 服务器是否真的使用了幕后的端口?
有没有办法防止这种情况发生? < / p>
**谁能100%肯定?如果这是造成这个问题的唯一原因,请原谅我。*
编辑:
操作系统:Windows 7专业版
答案 0 :(得分:1)
ruby.exe是否出现在进程下的任务管理器中?这是杀死它的简单方法。如果没有显示,则从命令提示符处执行以下操作。
netstat -a -o
这将列出系统使用的所有端口。在tcp部分下找到正在运行的端口。当您找到该条目时,它将列出正在运行的进程ID。然后,您需要按如下方式终止该PID
taskkill -F /PID 2632
以下是我在Windows机器上使用的行。
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:3000 fastone:0 LISTENING 2632
我使用默认的rails端口杀死了pid 2632。至于为什么会这样?它发生在Linux世界以及大多数rails应用程序部署的地方。问题是当终端窗口关闭等时,ruby进程仍在运行。该进程在后台消失。端口仍在使用中,服务仍在运行。我不确定是否有一种简单的方法可以防止它发生。欢迎来到编程世界