diff --git a/lib/capybara/driver/webkit/browser.rb b/lib/capybara/driver/webkit/browser.rb index f753100e..ccfaeda5 100644 --- a/lib/capybara/driver/webkit/browser.rb +++ b/lib/capybara/driver/webkit/browser.rb @@ -93,10 +93,18 @@ def fork_server server_path = File.expand_path("../../../../../bin/webkit_server", __FILE__) read_pipe, write_pipe = IO.pipe - @pid = fork do - $stdout.reopen write_pipe - read_pipe.close - exec(server_path) + if Process.respond_to?(:spawn) + @pid = Process.spawn(server_path, + :in => :in, + :out => write_pipe, + :err => :err, + :close_others => true) + else + @pid = fork do + $stdout.reopen write_pipe + read_pipe.close + exec(server_path) + end end at_exit { Process.kill("INT", @pid) }