From 2c8194156753b8b8d19f4171deffe99683f6ca5d Mon Sep 17 00:00:00 2001 From: Erik Hanson & Christian Williams Date: Tue, 14 Jul 2009 10:35:53 -0700 Subject: [PATCH] set process group id on spawned servers to allow kill by process group id later. turn off selenium spew. --- contrib/ruby/jasmine_runner.rb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/contrib/ruby/jasmine_runner.rb b/contrib/ruby/jasmine_runner.rb index 302cb65..de04d2f 100644 --- a/contrib/ruby/jasmine_runner.rb +++ b/contrib/ruby/jasmine_runner.rb @@ -144,13 +144,15 @@ module Jasmine @selenium_server_port = Jasmine::find_unused_port @selenium_pid = fork do - exec "java -jar #{@selenium_jar_path} -port #{@selenium_server_port}" + Process.setpgrp + exec "java -jar #{@selenium_jar_path} -port #{@selenium_server_port} &> /dev/null" end puts "selenium started. pid is #{@selenium_pid}" @jasmine_server_pid = fork do + Process.setpgrp Jasmine::SimpleServer.start(@jasmine_server_port, @spec_files, @dir_mappings) - sleep(100000) + exit! 0 end puts "jasmine server started. pid is #{@jasmine_server_pid}" @@ -158,10 +160,14 @@ module Jasmine wait_for_listener(@jasmine_server_port, "jasmine server") end + def kill_process_group(process_group_id, signal="TERM") + Process.kill signal, -process_group_id # negative pid means kill process group. (see man 2 kill) + end + def stop_servers puts "shutting down the servers..." - Process.kill 15, @selenium_pid if @selenium_pid - Process.kill 15, @jasmine_server_pid if @jasmine_server_pid + kill_process_group(@selenium_pid) if @selenium_pid + kill_process_group(@jasmine_server_pid) if @jasmine_server_pid end def run