Isso é exatamente o que o paralela do gnu foi projetado, então eu recomendo strongmente que você o use. Em particular, veja como é executado como um semáforo :
for i in {1..4}
do
echo running $i
sem -j3 df dd if=/dev/urandom of=/mnt/$i/x bs=1024 count=1024000000 ";" echo done
done
# sem --wait waits until all jobs are done.
sem --wait