当我使用rails s
命令启动rails服务器时,它显示A server is already running. Check C:/Sites/folder/Pids/Server.pids
当我打开文件时,它只输出一个4位数字,那么我该如何解决这个问题呢?
FYI
cmd.exe
显示没有其他进程正在运行。 (使用Windows)。答案 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
对我有用....