Threading ??? Shell Scripts

Mathieu Chouquet-Stringer ml2news at free.fr
Tue Jun 27 21:34:04 UTC 2006


sos at zjod.net (Steve Siegfried) writes:
> I'm attaching a script (waaay at the bottom), "DISPATCH", which manages
> up to N simultaneous jobs.

IMHO a better (and easier) approach would be to use xargs because it does
exactly what your long script does (I think, I didn't review carefully I
admit):

echo {1..19} | xargs -n 3 -P 3 echo

I used -n because you had 3 args in your example; -P limits the number of
concurrent processes.

A far better example that actually shows the proc limit would be with the
following script in place of the echo command:

#!/bin/bash
echo "pid: $$ ($(date)) $@"
sleep 2


Here's the result:
pid: 14729 (Tue Jun 27 23:30:51 CEST 2006) 4 5 6
pid: 14732 (Tue Jun 27 23:30:51 CEST 2006) 7 8 9
pid: 14727 (Tue Jun 27 23:30:51 CEST 2006) 1 2 3
pid: 14736 (Tue Jun 27 23:30:53 CEST 2006) 10 11 12
pid: 14739 (Tue Jun 27 23:30:53 CEST 2006) 13 14 15
pid: 14742 (Tue Jun 27 23:30:53 CEST 2006) 16 17 18
pid: 14745 (Tue Jun 27 23:30:55 CEST 2006) 19

-- 
Mathieu Chouquet-Stringer




More information about the fedora-list mailing list