2

免责声明:我是一个完整的初学者,所以请多多包涵,我不知道如何命名我的问题,所以在网上寻找答案很麻烦。

我的端口有问题。

问题: 我通过这行命令启动 rails 服务器:

rails s -p 3500

另一台计算机使用它。但是当服务器挂起(关闭终端并关闭服务器)时,它无法通过同一端口启动 rails 服务器。抱怨(并声称)使用多个套接字。我们很确定*没有其他人使用相同的端口。


急救:要让服务器运行,我们重新启动计算机或将端口更改为 3501。这很麻烦。

假设: 似乎它使端口保持连接状态。

在这里我找到了另一个解决方法(引用如下)

在任务管理器中找到ruby.exe进程并完成

有没有更简单的方法来解决这个问题?我还没有尝试过上面的方便解决方法,但我相信这会奏效。

现在,回到我的主要问题: 服务器真的在后台使用端口吗?

有没有办法防止这种情况发生?

**谁能百分百确定?如果这是导致此问题的唯一原因,请原谅我。*

编辑:
操作系统:Windows 7 Professional

4

1 回答 1

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 进程仍在运行。该进程在后台消失。该端口仍在使用中,服务仍在运行。我不确定是否有一种简单的方法可以防止它发生。欢迎来到编程世界

于 2012-05-15T03:16:40.400 回答