Re: off topic: combined output of concurrent processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/14/2012 09:35 AM, Amadeus W.M. wrote:
> This is not Fedora specific, so apologies for posting it here. I used to 
> post this kind of questions in comp.linux.misc or the like but I don't 
> have access to usenet groups anymore.
>
> 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? 
>
>
> Example: script ioTest.sh:
>
>
> #!/bin/bash
>
> i=0
> while [ $i -lt 100 ];
> do
>     echo "AAAAA" &    # e.g. 500 As
>     echo "BBBBB" & 
>     echo "CCCCC" & 
>
>     i=$(($i+1))
> done
>
>
> Then 
>
> ./ioTest.sh > out
>
> The A's and B's and C's always seem to be in contiguous blocks of 500 in 
> the output file, but is that guaranteed? 
>
> Thanks!
>

No....  Not only that, you are placing the echo commands in the background.  So, it
is certainly possible that the script will finish before the echos are completed. 
Not only that, there is no guarantee that all output from the echos will be written
to "out".  You can see this if you put a sleep after the last echo.

[egreshko@meimei test]$ grep ^A out | wc
     97      97     582
[egreshko@meimei test]$ grep ^B out | wc
     94      94     564
[egreshko@meimei test]$ grep ^C out | wc
     96      96     576

Your results will vary depending on the number of CPU's.  If you have a single CPU
system, you may very well get all 300.

-- 
Never be afraid to laugh at yourself, after all, you could be missing out on the joke
of the century. -- Dame Edna Everage
-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org


[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux