..$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
A server is already running. Check /home/..name/rprojects/railsapp/tmp/pids/server.pid.
Exiting
对于rails初学者来说,最简单的解决方法是什么?
ben*_*ben 138
您可以删除该server.pid文件.
rm /your_project_path/tmp/pids/server.pid
在OSX中尝试:
sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
或者在linux中:
ps -aef | grep rails
要么
lsof -wni tcp:3000
使用杀死进程
kill -9 PID (eg,2786)
Kar*_*hit 116
Short和Crisp单行命令,将负责它.
kill -9 $(lsof -i tcp:3000 -t)
张健健*_*张健健 12
如果您正在使用docker-compose,并且在docker-compose.yml中有:
 
volumes:
  - .:/myapp
这意味着您将本地工作空间映射到容器的/ myapp文件夹.
对于卷定义,不会删除/ myapp中的任何内容.
您可以./tmp/pids/server.pid在本地计算机中删除.然后容器的/ myapp将没有此文件.
server.pid 仅包含正在运行的服务器的进程ID.
如果你这样做:
more /your_project_path/tmp/pids/server.pid
您将获得一个数字(例如6745),您可以使用命令kill来停止以前的服务器:
kill -9 6745
然后您可以使用该rm命令删除该文件
rm /your_project_path/tmp/pids/server.pid
简单:
当发生这种情况时,进入项目的根文件夹并运行:
gem install shutup
shutup
这将找到当前正在运行的进程,将其终止并清理pid文件
注意:如果您使用rvm全局安装gem
rvm @global do gem install shutup
小智 8
运行此命令 -
lsof -wni tcp:3000那么你会得到下表——
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ruby    2552 shyam   17u  IPv4  44599      0t0  TCP 127.0.0.1:3000 (LISTEN)
ruby    2552 shyam   18u  IPv6  44600      0t0  TCP [::1]:3000 (LISTEN)运行此命令并替换上表中的 PID
kill -9 PID例子:
kill -9 2552可以使用以下方法解决问题:
kill -9 $(more /home/..name/rprojects/railsapp/tmp/pids/server.pid)
有时会因为您强行关闭服务器而发生这种情况,例如手动关闭操作系统/机器,以便服务器没有足够的时间登录server.pid.
一种简单的方法是手动转到tmp/pids/(控制台中显示的目录)并删除server.pid文件.然后,当您再次启动服务器时,rails server或者rails s,它会创建一个新的server.pid,您可以继续开发.   
首先找到 PID # - Rails 服务器卡在哪里
运行此命令以查找卡住的 PID
cat ./tmp/pids/server.pid
它会返回类似的东西65829
然后杀死那个PID =>kill 65829