服务器已经在Rails中运行
当我使用rails s
命令启动rails服务器时,显示A server is already running. Check C:/Sites/folder/Pids/Server.pids
A server is already running. Check C:/Sites/folder/Pids/Server.pids
当我打开文件,它只输出一个4位数字,所以我怎么解决这个问题?
FYI
- 没有其他Rails cmd的实例正在运行。
- 检查任务pipe理器,但只有
cmd.exe
显示没有其他进程正在运行。 (使用Windows)。
删除文件:C:/Sites/folder/Pids/Server.pids
旧解决scheme:
rails s -p 4000 -P tmp/pids/server2.pid
你也可以find这个post的更多selectRails更新到3.2.11中断运行多个服务器
新解决scheme
当你运行rails s
=>引导WEBrick
=> Rails 4.0.4应用程序从http://0.0.0.0:3000
开始开发
=>运行rails server -h
获取更多的启动选项
=> Ctrl-Cclosures服务器
服务器已经在运行。 检查/your_project_path/tmp/pids/server.pid。 退出
所以放置你的path/your_project_path/tmp/pids/server.pid
并删除这个server.pid文件:
rm /your_project_path/tmp/pids/server.pid
或者Incase你是服务器被分离,然后按照下面的指导方针:
如果你使用命令“rails -d”来分离你的rails服务器,那么,
使用命令删除rails分离的服务器
ps -aef | grep rails
或者通过这个命令
sudo lsof -wni tcp:3000
然后
kill -9 pID
或者使用这个命令
通过运行该程序的端口名称来查找和终止进程。 为3000replace您的程序正在运行的端口。
sudo kill -9 $(lsof -i :3000 -t)
lsof -wni tcp:3000
然后你应该看到ruby进程,你可以运行
kill -9 processid
你现在应该很好地运行这个过程
rails s thin
运行多个进程似乎不是一个好主意,从我读过的许多人都同意。 不幸的是,我注意到许多内存泄漏,所以我无法想象有两个进程在运行。 我知道有一个加class时间,我的页面刷新越来越慢,因为数据存储在内存中。
kill -9 $(lsof -i tcp:3000 -t)
$ lsof -wni tcp:3000 # Kill the running process $ kill -9 5946 $ rm tmp/server.pids
工头开始等服务
当你杀死你的服务器进程并且没有更新pid文件时,会发生这种情况。 最好的解决办法是删除文件Server.pid 。
使用该命令
rm <path to file Server.pid>
可能是您通过以下方式暂停服务器: ^Z
vim C:/Sites/folder/Pids/Server.pids
输出的四位数字是进程ID。
你应该kill -9 processid
,用vim(或其他编辑器)输出的4个数字replace进程id。
gem install shutup
然后进入您的rails项目的当前文件夹并运行
shutup
#这将杀死当前正在运行的Rails进程
你可以使用命令'shutup'每次你想要的
DICLAIMER:我是这个gem的创造者
注意:如果您正在使用rvm全局安装gem
rvm @global do gem install shutup
如果你在Windows上,你只需要做'轨道重新启动'只有一个步骤,然后再次键入'轨道'你很好去。