あかんわ

覚えたことをブログに書くようにすれば多少はやる気が出るかと思ったんです

railsコマンドが固まったんでspringをstopしたら動くようになった

$spring stop
Spring stopped.

環境:Rails4.2.6

springRailsアプリケーションのプリローダーとやらで、これが機能していると、入力した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 stoprailsコマンドが動くようになるのか確認すべく、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については、こちらの記事を参考にさせていただきました。

Springについては、こちらの記事を参考にさせていただきました。