I have several processes that are producing output on STDOUT and STDERR, which I have redirected to numbered file descriptors, and I want to collate all the output together into a single file.
I have naively tried
[input processes] | cat <3 <4 <5 2>&1 >[output file] but of course, this does not work as cat will wait until it's STDIN pipe is closed before reading data from any of the subsequent ones, causing my process to hang when the other pipes' buffers become full.
Any suggestions?