railsコマンドが固まったんでspringをstopしたら動くようになった
$spring stop
Spring stopped.
環境:Rails4.2.6
spring
はRailsアプリケーションのプリローダーとやらで、これが機能していると、入力したrails
コマンドの起動が次から早くなるそうですが、運が良いと固まる事があるらしい。
仮にstop
させたとしても、rails
コマンドを入力した際に自動で起動するので大丈夫らしい。
rake
とかのコマンドでも使えるらしいが、その場合は、bin/rake
のようにbin/
を付ける必要があるらしい。
邂逅
Rails.env
を調べたくてRailsコンソールを動かそうとしたら固まったので、ctl+c
で止めました。
$rails console ^C/Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/run.rb:98:in `gets': Interrupt from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/run.rb:98:in `verify_server_version' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/run.rb:56:in `run' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/run.rb:37:in `warm_run' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/run.rb:26:in `call' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/command.rb:7:in `call' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/rails.rb:24:in `call' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client/command.rb:7:in `call' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/client.rb:28:in `run' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/bin/spring:49:in `<top (required)>' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/binstub.rb:11:in `load' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/spring-1.6.4/lib/spring/binstub.rb:11:in `<top (required)>' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/b0npu/.rbenv/versions/2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/b0npu/RailsApp/app/bin/spring:13:in `<top (required)>' from bin/rails:3:in `load' from bin/rails:3:in `<main>'
あ、多分これあかんやつや( ゚д゚)
押し寄せる焦燥感に挫けそうになりながら『rails stuck』で検索してみたら、こちらでspring stop
を試すように書いてあるのを見つけました。
エラーログを見直したら、確かにspring
が関係ありそうな雰囲気だったのでspring stop
で止めたのが、冒頭のコマンド入出力です。
本当にspring stop
でrails
コマンドが動くようになるのか確認すべく、Railsコンソールを動かしてみます。
$rails console Running via Spring preloader in process 71052 Loading development environment (Rails 4.2.6) irb(main):001:0> Rails.env => "development" irb(main):002:0> exit
動いた( ゚д゚)
本当にspring
が自動で動き出すのか、状態の確認もしてみます。
$spring status Spring is running: 71050 spring server | railsapp | started 54 secs ago 71051 spring app | railsaaa | started 54 secs ago | development mode
おお、こっちも動いてるわ(゚Д゚)
泥濘
今回遭遇したエラーはサックリと解決しましたが、spring stop
で解決しないrails
コマンドのエラーに遭遇したら、別途、記事にします。
参考記事
spring stop
については、こちらの記事を参考にさせていただきました。
- ruby on rails console hanging when loading - Stack Overflow
- rails c とかが動かなかった原因は、rake rails:update してなかったから というオチ - Qiita
Springについては、こちらの記事を参考にさせていただきました。