0
我在我的linux服務器上運行通過水豚很多工作。我使用的是poltergeist phantomjs驅動程序。 A之後,而我得到了很多這樣的錯誤:關閉水豚的正確方法(與poltergeist/phantomjs)
Errno::EMFILE Too many open files - socket(2)
我看了lsof
,它看起來像我有這些的LOT:
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')
但你確定會終止TCP連接嗎? – 2013-04-23 13:07:07
我不確定,但它應該。我鼓勵你去嘗試。 – jonleighton 2013-04-23 13:25:00
好吧,它幫助,我認爲,在TCP連接,但我仍然得到錯誤,但現在我看到'lsof'中的很多這些:ruby 19441 deployer 137w REG 9,3 1895691531 57021609/home/deployer/apps/autouncle/shared/log/sidekiq.log ruby 19441 deployer 138r FIFO 0,8 0t0 11683098 pipe ruby 19441 deployer 139w FIFO 0,8 0t0 11683098 pipe' – 2013-04-25 13:09:40