off topic: combined output of concurrent processes

Dave Ihnat dihnat at dminet.com
Sat Apr 14 13:33:43 UTC 2012


On Sat, Apr 14, 2012 at 01:35:38AM +0000, Amadeus W.M. wrote:
> So here is the question. Suppose I have several processes that run 
> concurrently and each outputs stuff to stdout. Can the combined output be 
> intermingled? 

If you just send the output to a file, you've no way of knowing exactly
when it will be output, or whether it will be buffered before writing.
You can mitigate this a bit by making every output line have a sequence and
process identifier--the PID and date in seconds would work--so you could
separate the streams later.

If you really would like to get output in sequence, write to a pipe, and
have a reader process drain the pipe to a logfile.  It's pretty easy; look
at "mknod" with the 'p' option, or "mkfifo".  I'd still suggest tagging
each output line with an identifier and sequence number.

Cheers,
--
	Dave Ihnat
	dihnat at dminet.com


More information about the users mailing list