sinatra用ctrl z停止 - 现在它不会重启,因为它说端口4567已被使用

时间:2014-01-23 16:41:57

标签: ruby sinatra

在运行Sinatra时,我不小心点击了ctrl + z来停止服务器而不是ctrl + c Ctr + z似乎停止了应用程序。但现在我无法重启它。请帮忙。

   ^Z
[1]+  Stopped                 ruby app.rb
jeffrey-mac:scta JCWitt$ ruby app.rb 
[2014-01-23 11:34:24] INFO  WEBrick 1.3.1
[2014-01-23 11:34:24] INFO  ruby 1.9.3 (2012-04-20) [x86_64-darwin11.4.2]
[2014-01-23 11:34:24] WARN  TCPServer Error: Address already in use - bind(2)
[2014-01-23 11:34:24] WARN  TCPServer Error: Address already in use - bind(2)
[2014-01-23 11:34:24] WARN  TCPServer Error: Address already in use - bind(2)
== Someone is already performing on port 4567!

2 个答案:

答案 0 :(得分:12)

按Ctrl + Z时,您将暂停应用程序并将其发送到后台。它不会被执行但它也不会被杀死,它所使用的资源(例如打开的文件或网络套接字)继续被绑定到应用程序。

您可以通过在shell中运行fg(前景的缩写)来恢复应用。

答案 1 :(得分:4)

我遇到了类似的错误,但命令fg没有帮助。我使用命令lsof -i :4567来查找哪个进程打开了端口,然后我用kill PROCESS_ID停止了它。