connect child process to foreground outputs
use keep-alive to reduce socket overheads