服务器已在Rails中运行

时间:2013-02-25 17:32:26

标签: ruby-on-rails ruby-on-rails-3.2 command-prompt webrick

当我使用rails s命令启动rails服务器时,它显示A server is already running. Check C:/Sites/folder/Pids/Server.pids

当我打开文件时,它只输出一个4位数字,那么我该如何解决这个问题呢?

FYI

  1. 这次没有其他Rails cmd实例正在运行。
  2. 选中的任务管理器,但只有cmd.exe显示没有其他进程正在运行。 (使用Windows)。

16 个答案:

答案 0 :(得分:178)

删除文件:C:/Sites/folder/Pids/Server.pids

答案 1 :(得分:130)

旧解决方案:

rails s -p 4000 -P tmp/pids/server2.pid

此外,您可以找到此帖子以获取更多选项 Rails Update to 3.2.11 breaks running multiple servers

新解决方案

运行 rails s

=>启动WEBrick

=> Rails 4.0.4应用程序从http://0.0.0.0:3000

开发开始

=>运行rails server -h以获取更多启动选项

=> Ctrl-C关闭服务器

服务器已在运行。检查/your_project_path/tmp/pids/server.pid。 离开

所以放置你的路径/your_project_path/tmp/pids/server.pid

并删除此 server.pid 文件:

rm /your_project_path/tmp/pids/server.pid

或者,如果您的服务器已分离,请遵循以下指南:

如果您使用命令“rails -d”分离了rails服务器,那么<​​/ p>

使用命令

删除rails分离的服务器
ps -aef | grep rails

或通过此命令

sudo lsof -wni tcp:3000

然后

kill -9 pID

或使用此命令

按运行该程序的端口名称查找和终止进程。对于运行程序的3000替换端口。

sudo kill -9 $(lsof -i :3000 -t)

答案 2 :(得分:78)

lsof -wni tcp:3000

然后你应该看到ruby进程,你可以运行

kill -9 processid

你现在应该好好运行这个过程

rails s thin

运行多个流程似乎不是一个好主意,而且从我读过的很多人都同意这一点。不幸的是,我注意到许多内存泄漏事件,所以我无法想象有两个进程在运行。我知道有一次加班我的页面刷新越来越慢,因为数据存储在内存中。

答案 3 :(得分:25)

kill -9 $(lsof -i tcp:3000 -t)

答案 4 :(得分:10)

$ lsof -wni tcp:3000

# Kill the running process
$ kill -9 5946

$ rm tmp/server.pids

领班开始等启动服务

答案 5 :(得分:7)

你可以通过杀死它来摆脱这个过程:

kill -9 $(lsof -i tcp:3000 -t)

答案 6 :(得分:4)

当您终止服务器进程并且未更新pid文件时,会发生这种情况。 最佳解决方案是删除文件 Server.pid

使用命令

  

rm <path to file Server.pid>

答案 7 :(得分:4)

gem install shutup

然后进入rails项目的当前文件夹并运行

shutup#这会杀死当前正在运行的Rails进程

您可以在每次需要时使用“shutup”命令

DICLAIMER:我是这个宝石的创造者

注意:如果您使用rvm全局安装gem

rvm @global do gem install shutup

答案 8 :(得分:2)

您可能已暂停服务器:^Z

vim C:/Sites/folder/Pids/Server.pids输出的四个数字编号是进程ID。

您应该kill -9 processid,用vim(或其他编辑器)输出的4个数字替换进程ID。

答案 9 :(得分:1)

如果您使用的是Windows,则只需执行一步 &#39; rails restart&#39; ,然后再次输入 &#39; rails s&#39; 你很高兴。

答案 10 :(得分:0)

运行: fuser -k -n tcp 3000

这将终止在默认端口3000上运行的进程。

答案 11 :(得分:0)

在Windows Rails 5.2上,删除此文件

def test_non_callable_callback_should_return_type_error(self):
    self.assertraises(TypeError, mydecorator, 'this_is_not_a_callable')

然后运行

c:/Sites/<your_folder>/tmp/pids/server.pid
再次

答案 12 :(得分:0)

我只是遇到了这个问题,并尝试将其设置为其他端口,但是我唯一需要做的就是删除我的if (navigator.userAgent.includes('CriOS')) { var base64PDF = base64ArrayBuffer(response.data); var win = window.open(); win.document.write('<iframe id="myIframe" width="600" height="315" src="data:application/pdf;base64,' + base64PDF + '" frameborder="0" allowfullscreen ></iframe>'); win.document.write('<script>window.open(window.document.getElementById("myIframe").src) </script>'); } else if (navigator.userAgent.includes('iPad') || navigator.userAgent.includes('iPhone')) { var base64PDF = base64ArrayBuffer(response.data); window.location.assign('data:application/pdf;base64,' + base64PDF); } ,一切顺利。

答案 13 :(得分:0)

运行:

在Ubuntu / linux中

 sudo rm /var/www/html/rails/WBPOCTEST/tmp/pids/server.pid

 pkill -9 ruby

lsof -wni tcp:3000

kill -9 pid

答案 14 :(得分:0)

只需打开该C:/Sites/folder/Pids/Server.pids并复制该4位数字 value。那4位数的值不过是PID,您需要将其杀死 停止已经运行的进程。

然后使用以下命令停止该过程

 kill -9 <pid>

一旦已经运行的进程停止然后点击

rails s启动Rails服务器

答案 15 :(得分:0)

在 Ubuntu 上:- sudo kill -9 $(lsof -i :3000 -t)

哪里, 3000 is port number

对我有用....