Консоль Ruby on Rails зависает при загрузке
По какой-то причине консоль Ruby on Rails отказывается запускаться; это просто висит. Я не внес никаких изменений в свой код, и другие проекты, использующие одну и ту же версию Ruby и Ruby on Rails, не имеют проблем. Когда я, наконец, Ctrl + C я получаю эту трассировку стека, которая указывает на Spring.
Я не могу объяснить, почему это происходит от одного момента к другому, где он работал нормально. Я очистил все драгоценные камни через RVM и переустановил все через команду bundle, но все равно не повезло. Любые идеи будут оценены.
Также, насколько я могу судить, сервер Ruby on Rails не имеет проблем. Проблема связана с проектом, однако ни один код не изменился, и проблема возникает только в консоли Ruby on Rails.
Ruby 2.1.2
Rails 4.1.4
[email protected]:~/work/app_a$ rails console
^C/home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in 'gets': Interrupt
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in 'verify_server_version'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:25:in 'call'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in 'call'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in 'call'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in 'call'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in 'run'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in '<top (required)>'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in 'load'
from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in '<top (required)>'
from /home/user_a/work/app_a/bin/spring:16:in 'require'
from /home/user_a/work/app_a/bin/spring:16:in '<top (required)>'
from bin/rails:3:in 'load'
from bin/rails:3:in '<main>'
[email protected]:~/work/app_a$
Ответы
Ответ 1
Перезапуск Spring должен исправить зависание команды:
$ bin/spring stop
После удаления и повторного создания нового приложения Ruby on Rails у меня возникли зависшие команды (rake, bin/rails и т.д.). Google не был таким полезным. Я надеюсь, что это так.
Spring начнется автоматически при повторном запуске команды.
Ответ 2
Думаю, что-то не так с версией Spring Gem.
Зайдите в свой Gemfile и прокомментируйте самоцвет 'spring'. Затем запустите bundle install
и попробуйте снова.
# gem 'spring'
А потом:
bundle install
Если ваша работа зависит от драгоценного камня, попробуйте обновить драгоценные камни:
bundle update
Ответ 3
Если $ bin/spring stop
не решит проблему, убедитесь, что процесс Spring, оставшийся без внимания, все еще не завершен:
$ ps aux | grep -i spring
Если вы видите что-то вроде
user 7163 0.0 0.0 110356 2165 pts/3 S+ 19:40 0:00 grep --color=auto -i spring
user 16980 0.0 0.4 398826 17580 ? Sl Aug31 0:00 spring server | current | started 277 hours ago
затем прервите процесс ошибочной пружины и попробуйте снова запустить консоль:
$ kill -9 16980
$ rails c
Ответ 4
Когда есть подозрение, что Spring является причиной странностей, попробуйте выполнить следующую команду:
spring stop && spring start