从Windows命令行终止localhost:3000进程

7

我在 Windows 上使用 Ruby on Rails(听到你们都在屏幕上喷咖啡),这只是一个短期的事情。(在家里使用 Ubuntu)所以今天下午我尝试启动 Webrick,结果收到了错误消息。

TCPServer Error, only one usage of each socket address is normally permitted

看起来上周的时候端口3000仍在运行?我的问题是如何在Windows命令行中杀死该进程。通常我需要按下Windows键和Pause/Break键,因为按Ctrl+C似乎只能杀掉批处理进程...
欢迎任何解决方案。

编辑

看起来好像...
tasklist 

给我进程列表的命令已经有了,但是我该如何找到运行webrick服务器的进程?

ruby.exe没有出现在正在运行的进程列表中。

2个回答

16

尝试使用netstat -a -o -n命令确定运行在3000端口的进程的pid,然后你应该可以使用 taskkill /pid #### 命令杀死正在该端口上运行的任何进程。

这可能不是最优雅的方法,但我认为它应该能够起作用。

编辑

你可能还需要使用/F标志来强制杀死进程。我刚在我的本地机器上尝试了一下,那么可以正常工作。


非常感谢,我一直在到处寻找那个,是的,我得到了访问被拒绝的错误,语法是 taskkill /F pid ###。 - Richlewis
1
好的,这样应该可以了。所以如果netstat显示一个pid是6688,那么命令就是taskkill /F /pid 6688。我也尝试在Git Bash下运行它,但是没用。在命令提示符下正常工作。 - Zajn
1
确保在这些标志之间放置一个空格!taskkill /F /pid #### - Zajn
是的,这是我的空格问题,命令是正确的,但我收到了访问被拒绝的错误,因此无法终止进程。您知道为什么会出现这种情况吗? - Richlewis
没问题,我使用Ctrl + Shift + Enter打开了命令提示符。这样我就获得了管理员权限。 - Richlewis
显示剩余2条评论

3

进入 rails_project\tmp\pids 目录并删除其中的 .pid 文件。

运行:

rails server

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接