From: Daniel Berger Date: 2008-08-27T05:09:09+09:00 Subject: Re: open3 and background processes On Aug 26, 1:37 pm, Gennady Bystritsky wrote: > IO.readlines will try to read out everything until EOF, hence it "hangs" for long running background processes. Can you use IO.readline instead and modify your spawned program to output a one line message to indicate success? Then it will catch both errors and successful runs. Ah, ok. This seems to work fine: program = File.join(Dir.pwd, "miniserver.rb") cmd = "ruby #{program} &" Open3.popen3(cmd) do |stdin, stdout, stderr| # Use readline, since readlines waits until EOF error = stderr.readline if error error = [error] << stderr.readlines # Get the rest end puts error if error end puts "Done" Many thanks, Dan