ruby-on-rails - Rails 5 地址已在使用中 - bind(2) for "127.0.0.1"port 3000

标签 ruby-on-rails ruby

经过一些编码后,在运行 rails s 时出现此错误:

Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)

我的环境是:

$ rails -v       
Rails 5.0.0
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

我试过:

  1. 创建一个新项目 - 相同
  2. 已检查 Rails 4.2 - 问题已解决
  3. 重新安装 rails 5 和 ruby​​ - 同样的问题
  4. lsof -wni tcp:3000 什么都不返回
  5. ps 辅助 | grep "rails"- 什么都没有
  6. ps 辅助 | grep "puma"- 什么都没有
  7. ps 辅助 | grep“ ruby ”-什么都没有
  8. 使用 puma 而不是 rails s - 问题已解决
  9. 使用 rails s -p 3001 - 同样的问题,也适用于其他端口

更新

  1. 使用 RAILS_ENV=production bundle exec rails s - 问题已解决

有什么建议吗?

最佳答案

某处正在运行相同的进程

查看哪个进程使用了​​3000端口并获取进程pid类型如下命令

lsof -wni tcp:3000

这将给出正在使用该端口的进程

示例结果

process1   12345   0.0  0.0  12343566  1972 s000  R+   11:17AM   0:00.00 grep puma

你可以通过输入下面的命令来终止这个进程

12345这是进程ID

kill -9 12345

现在再次启动服务器

关于ruby-on-rails - Rails 5 地址已在使用中 - bind(2) for "127.0.0.1"port 3000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460373/

相关文章:

ruby-on-rails - Rails 模型中的两级命名空间

ruby-on-rails - 我应该在哪里存储Rails应用程序的站点站点范围配置设置?

sql - 包含和条件未给出预期 SQL 的 ActiveRecord 查询

ruby-on-rails - Ruby 中的 block 是否被过度使用?

arrays - 使用带有 %w 或 %W 的变量 - Ruby

ruby-on-rails - 如何避免 Rails 中的简单竞争条件?

ruby-on-rails - M Hartl 的 Ruby on Rails 教程第 5 章主页自定义标题

ruby-on-rails - Rails google-ads-ruby 设置

ruby - 使用 HashMap 测试顺序

css - form_for 显示为 block 和内联元素(ruby on rails,css)