Skip to content

Commit

Permalink
[api] trying to make start_test_backend's stop more robust
Browse files Browse the repository at this point in the history
  • Loading branch information
coolo committed Nov 20, 2013
1 parent e3a443d commit aaa2b91
Showing 1 changed file with 11 additions and 30 deletions.
41 changes: 11 additions & 30 deletions src/api/script/start_test_backend
Expand Up @@ -98,12 +98,6 @@ puts "Starting backend srcserver..."
srcsrv = Thread.new do
srcsrv_out = IO.popen("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_srcserver 2>&1")
puts "Started backend srcserver with pid: #{srcsrv_out.pid}"
begin
Process.setpgid srcsrv_out.pid, 0
rescue Errno::EACCES
puts "Could not set backend srcserver group to root"
# what to do?
end
while srcsrv_out && !dienow
begin
line = srcsrv_out.gets
Expand All @@ -119,12 +113,6 @@ puts "Starting backend repserver..."
reposrv = Thread.new do
reposrv_out = IO.popen("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_repserver 2>&1")
puts "Started backend repserver with pid #{reposrv_out.pid}"
begin
Process.setpgid reposrv_out.pid, 0
rescue Errno::EACCES
# what to do?
puts "Could not set backend repserver group to root"
end
while reposrv_out && !dienow
begin
line = reposrv_out.gets
Expand All @@ -140,12 +128,6 @@ puts "Starting backend serviceserver..."
servicesrv = Thread.new do
servicesrv_out = IO.popen("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_service 2>&1")
puts "Started backend service server with pid #{servicesrv_out.pid}"
begin
Process.setpgid servicesrv_out.pid, 0
rescue Errno::EACCES
# what to do?
puts "Could not set backend serviceserver group to root"
end
while servicesrv_out && !dienow
begin
line = servicesrv_out.gets
Expand All @@ -161,17 +143,11 @@ puts "Starting backend publisher..."
publishsrv = Thread.new do
publishsrv_out = IO.popen("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_publish 2>&1")
puts "Started backend publish server with pid #{publishsrv_out.pid}"
begin
Process.setpgid publishsrv_out.pid, 0
rescue Errno::EACCES
# what to do?
puts "Could not set backend publish server group to root"
end
while publishsrv_out && !dienow
begin
line = publishsrv_out.gets
logger.debug line.strip unless line.blank?
sleep 0.5
break if line.nil?
logger.debug line.strip unless line.empty?
rescue IOError
break
end
Expand Down Expand Up @@ -288,11 +264,15 @@ scheduler_thread = nil
at_exit do
scheduler_thread.join if scheduler_thread

Process.kill "TERM", -srcsrv_out.pid
Process.kill "TERM", -reposrv_out.pid
Process.kill "TERM", -servicesrv_out.pid
system("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_srcserver --stop")
system("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_repserver --stop")
system("cd #{Rails.root}/tmp/backend_config; exec perl #{perlopts} ./bs_publish --stop")

Process.kill "TERM", srcsrv_out.pid
Process.kill "TERM", reposrv_out.pid
Process.kill "TERM", servicesrv_out.pid
begin
Process.kill "TERM", -publishsrv_out.pid
Process.kill "TERM", publishsrv_out.pid
rescue Errno::ESRCH
end

Expand Down Expand Up @@ -366,3 +346,4 @@ trap("INT") { dienow = true }
while !dienow do
sleep 1
end

0 comments on commit aaa2b91

Please sign in to comment.