I asked this in beginners, but I think it makes more sense here:
How can I collect all stdout and stderr from a Command? Today, if I do executor.start(command) and pipe proc.stdout and proc.stderr, the effect hangs if there is never anything printed on either of those streams. I also have found that executor.string(command) never includes stderr.