【问题标题】:Ruby on Rails server isn't startingRuby on Rails 服务器未启动
【发布时间】:2017-01-23 03:49:10
【问题描述】:

我一直在尝试使用命令 rails server 运行我的 Rails 应用程序 但最近出现了这个错误:

Macs-MacBook-Pro:jobsboard mac$ rails server => 引导彪马 => Rails 5.0.0.1 应用程序在http://localhost:3000 开始开发 => 运行rails server -h 以获取更多启动选项 Puma 以单一模式启动... * 版本 3.6.0 (ruby 2.3.0-p0),代号:Sleepy Sunday Serenity * 最小线程:5,最大线程:5 * 环境:发展 * 监听 tcp://localhost:3000 退出 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:266:in initialize': Address already in use - bind(2) for "::1" port 3000 (Errno::EADDRINUSE) from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:266:in new' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:266:in add_tcp_listener' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:260:in block in add_tcp_listener' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:259:in each' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:259:in add_tcp_listener' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:102:in block in parse' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:85:in each' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:85:in parse' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/runner.rb:133:in load_and_bind' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/single.rb:85:in run' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/launcher.rb:172:in run' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/rack/handler/puma.rb:51:in run' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/rack-2.0.1/lib/rack/server.rb:296:in start' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/server.rb:79:in start' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:90:inblock in server' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in tap' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:inserver' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in run_command!' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in ' 来自 /Users/mac/Documents/Projects /网络 开发/Ruby On Rails/工作板/jobsboard/bin/rails:9:in require' from /Users/mac/Documents/Projects/Web Development/Ruby On Rails/Jobs Board/jobsboard/bin/rails:9:in' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in load' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in call' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client/command.rb:7:in call' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/client.rb:30:in run' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/bin/spring:49:in <top (required)>' from /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in load' 来自 /Users/mac/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in <top (required)>' from /Users/mac/Documents/Projects/Web Development/Ruby On Rails/Jobs Board/jobsboard/bin/spring:13:in require' 来自 /Users/mac/Documents/Projects/Web Development/Ruby On Rails/Jobsboard/jobsboard/bin/spring:13:in <top (required)>' from bin/rails:3:inload' from bin/rails:3:in `'

我可以通过指定不同的端口来解决这个问题 - 即使用命令 '

rails 服务器 -p 4000

',但我想使用我以前的部署方式。我该如何解决?

附:我是 Rails 的新手,所以请给出简单的说明。 :p 非常感谢大家!谢谢!

加法:

上次登录时间:9 月 15 日星期四 13:55:52 在 ttys000 Macs-MacBook-Pro:Ruby On Rails mac$ ps aux | grep 导轨 mac 1040 0.0 0.0 2445080 800 s003 S+ 2:02PM 0:00.00 grep rails mac
1020 0.0 0.0 2471272 3052 s000 S+ 2:02PM 0:00.01 /Users/mac/.rvm/gems/ruby-2.3.0/gems/rb-fsevent-0.9.7/bin/fsevent_watch --latency 0.1 /Users/mac/.rvm/gems/ruby-2.3.0/gems/jquery-rails-4.2.1 mac 1019 0.0 0.0 2462056 3032 s000 S+ 2:02PM
0:00.01 /Users/mac/.rvm/gems/ruby-2.3.0/gems/rb-fsevent-0.9.7/bin/fsevent_watch --latency 0.1 /Users/mac/.rvm/gems/ruby-2.3.0/gems/coffee-rails-4.2.1 Macs-MacBook-Pro:Ruby On Rails mac$

【问题讨论】:

    标签: ruby-on-rails server localhost


    【解决方案1】:

    打开终端或 iTerm 并假设您已经在项目目录中。

    检查 PID 进程

    lsof -wni tcp:3000
    

    如果它们存在,则杀死进程,在终端上输入这个

    kill -9 PID
    

    【讨论】:

      【解决方案2】:

      “您是否尝试过将其关闭再打开?”

      您的应用的某个版本可能已在后台运行。看看活动监视器,看看你是否能看到它,或者如果你对你的终端功能有信心,你可以试试

      ps aux | grep rails
      

      然后看看它是否出现在那里。然后使用带有进程 ID 的kill xxxx 来结束它,这应该会再次为您释放端口 3000

      【讨论】:

        【解决方案3】:

        表示 3000 端口不是空闲的。您项目的另一个实例已经在使用它。 所以,通过以下命令找到它的进程:

        lsof -i :3000
        

        并通过以下方式终止该进程:

        kill -9 processid
        

        您还可以从应用程序的临时文件夹中删除进程 ID。
        或者,您可以通过命令rails s -p 3001在其他端口上启动应用程序

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-02
          • 1970-01-01
          • 2015-01-09
          • 2015-10-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多