Java サーブレットを起動し、完全にロードされるまで stdout を観察してから、そのプロセスを実行したまま残りの rake タスクに戻りたいと考えています。現在、私は次のようなものを持っています:
IO.popen "java -jar ./tools/tests/servlet.jar" do |io|
io.each do |line|
puts line
Process.detach(io.pid) if line.include? 'Server ready.' # need help here
end
end
puts "Ready..."
プロセスを実行したまま、この IO ブロックを終了してタスクを続行するにはどうすればよいですか? ありがとうございました!
編集:一時的な悪い解決策
def with_server_running
IO.popen "java -jar ./tools/tests/servlet.jar" do |io|
io.each do |line|
puts line
yield if line.include? 'Server ready.'
end
end
end
with_server_running do
puts "Ready..."
# rest of task
end