2013-04-23 3 views
0

나는 내 리눅스 서버에서 capybara를 통해 많은 일을하고있다. 나는 간호사 phantomjs 드라이버를 사용하고 있습니다.capybara (poltergeist/phantomjs와 함께)를 닫는 올바른 방법

Errno::EMFILE Too many open files - socket(2) 

내가 lsof에서 보면서 나는 이들의 많이 가지고있는 것처럼 보이는 :

ruby  32316 deployer 320u  IPv4 9893211  0t0  TCP localhost:55062 (LISTEN) 

지금 내가 그것을 수도 있다고 의심하고 있습니다를 후 나는 이러한 오류를 많이 받고 있어요 동안 연결이 제대로 닫히지 않았기 때문일까요?

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, {:js_errors => false}) 
end 

Capybara.current_driver = :poltergeist 
Capybara.javascript_driver = :poltergeist 
Capybara.run_server = false 

@session = Capybara::Session.new(:poltergeist) 
@session.visit('some_url') 

답변

5

당신은 @session.driver.quit을 실행할 수 있습니다

은 다음과 같은 것을 실행 한 후 종료의 올바른 방법이 될 것입니다 무엇.

+0

하지만 TCP 연결을 종료 하시겠습니까? –

+0

잘 모르겠지만,해야합니다. 나는 너를 시도하는 것이 좋습니다. – jonleighton

+0

글쎄, TCP 연결에 도움이되었지만 여전히 오류가 발생했다. 그러나 지금은'lsof'에서 많은 것을 볼 수있다 :'ruby 19441 deployer 137w REG 9,3 1895691531 57021609/home/deployer/apps/autouncle/shared/log/sidekiq.log 루비 19441 배포자 138r FIFO 0,8 0t0 11683098 파이프 루비 19441 배포자 139w FIFO 0,8 0t0 11683098 파이프' –

관련 문제