로드시 Ruby on Rails 콘솔이 정지됨


146

어떤 이유로 든 Ruby on Rails 콘솔은 시작을 거부합니다. 그냥 걸려요. 코드를 변경하지 않았으며 동일한 버전의 Ruby 및 Ruby on Rails를 사용하는 다른 프로젝트에는 문제가 없습니다. 마지막으로 Ctrl+를 누르면 CSpring을 가리키는이 스택 추적을 얻습니다.

왜 이런 일이 발생했는지 설명 할 수 없습니다. RVM을 통해 모든 gem을 지우고 bundle 명령을 통해 다시 설치했지만 여전히 운이 없습니다. 모든 아이디어를 부탁드립니다.

또한 Ruby on Rails 서버에는 내가 알 수있는 한 문제가 없습니다. 이 문제는 프로젝트와 관련이 있지만 코드는 변경되지 않았으며 문제가있는 것은 Ruby on Rails 콘솔뿐입니다.

루비 2.1.2
레일 4.1.4

user_a@ubuntu:~/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>'

user_a@ubuntu:~/work/app_a$

답변:


415

스프링을 다시 시작하면 교수형 명령이 수정됩니다.

$ bin/spring stop

새 Ruby on Rails 애플리케이션을 삭제하고 다시 작성한 후 정지 명령 (레이크, 빈 / 레일 등)이 발생했습니다. 구글은 그다지 도움이되지 않았습니다. 이것이기를 바랍니다.

명령을 다시 실행하면 Spring이 자동으로 시작됩니다.


이것은 Rails 4.1.1에서 나를 위해 일했습니다. 나는 그것이 무엇을하고 있는지보기 위해 Spring gem을 읽어야합니다.
jetimms

1
@ cee-dub 그러나 그 이유는 무엇입니까? 봄이 왜 레일 콘솔을 실행시키지 못하게합니까?
kamal

3
이것은 나를 위해 작동하지 않았습니다. 스프링을 멈춘 후에도 여전히 문제가 발생합니다.
Donato

3
단지이 문제에 달렸다 : 내가 실행했을 때 bin/spring stop, 나는 응답이 수신 Spring is not running.그래서, 실행 ps aux | grep spring실행 톱 5 개 스프링 프로세스를 수동으로 문제를 해결하는 그들을 죽였다.
Ian Taylor

놀랄 만한! 결코 추측하지 못했을 것입니다.
Rambatino

7

내가 생각하는 Spring gem 버전에 문제가 있습니다.

Gemfile로 가서 gem 'spring'을 주석으로 처리하십시오. 그런 다음 실행 bundle install하고 다시 시도하십시오.

# gem 'spring'

그리고:

bundle install

작품이 보석에 의존하는 경우 다음을 통해 보석을 업데이트하십시오.

bundle update

레일 4.1.4의 리눅스 민트에서도 해결되었습니다.
slhck

3
조심하십시오 bundle update. 그렇게하면 전체 환경에서 gem 버전을 완전히 바꿀 수 있습니다. 이것은 원하지 않는 많은 부작용을 일으킬 수 있습니다. 당신도 할 수있는 bundle update spring단지 하나 개의 보석을 업데이트
jaydel

@jaydel 항상 경로 버전을 포함하여 gem 파일에 버전을 넣어야합니다. 번 들러는 자동으로 마이너 버전을 업데이트하지만 메이저 버전은 업데이트하지 않지만 언제든지 원래 지정한 버전 (앱이 작동하는 것으로 알고 있음)으로 롤백 할 수 있습니다.
Ben Aubin

Gemfile에 버전을 넣는 것과 관련하여 동의합니다. 나는 메이저 버전으로의 업데이트에 대한 제한에 대해 몰랐지만 그것을 통해 생각할 때 의미가 있습니다 :) 좋은 정보, 감사합니다
jaydel

3

경우 $ bin/spring stop문제가 해결되지 않는 한 다음 확인 여전히 주위를 어슬렁 고아 봄 과정이없는 확인하십시오 :

$ 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

1

Spring이 이상한 원인이라고 의심되면 다음 명령을 실행하십시오.

spring stop && spring start
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.