Que mecanismo simples para processos síncronos do Uni

Preciso limitar o número de processos sendo executados em paralelo. Por exemplo, eu gostaria de executar esta linha de comando psuedo:

export POOL_PARALLELISM=4
for i in `seq 100` ; do
    pool foo -bar &
done

pool foo -bar # would not complete until the first 100 finished.

Therefor apesar de 101foo sendo colocados na fila para execução, apenas quatro estariam sendo executados a qualquer momento.pool bifurcaria () / exit () e enfileiraria os processos restantes até a conclusã

Existe um mecanismo simples para fazer isso com as ferramentas Unix?at ebatch não se aplicam porque geralmente invocam na parte superior do minuto e executam tarefas sequencialmente. Usar uma fila não é necessariamente o melhor, porque eu quero esses síncrono

Antes de escrever um invólucro em C usando semáforos e memória compartilhada e depois depurar conflitos que certamente apresentarei, alguém pode recomendar um bash / shell ou outro mecanismo de ferramenta para fazer iss

questionAnswers(2)

yourAnswerToTheQuestion