Per massimizzare l'utilizzo della CPU (ho eseguito le cose su una Debian Lenny in EC2) ho un semplice script per avviare i lavori in parallelo:Attendere bash i processi in background in script per essere finito
#!/bin/bash
for i in apache-200901*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200902*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200903*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200904*.log; do echo "Processing $i ..."; do_something_important; done &
...
Sono abbastanza soddisfatto di questa soluzione di lavoro, ma non ho potuto capire come scrivere ulteriore codice che solo eseguita una volta tutti i cicli sono stati completati.
C'è un modo per ottenere il controllo di questo?
Questo è stato veloce e ha risolto il mio problema, ben meritato, grazie! – mark
hint usa '' 'wait $ (jobs -p)' '' per aspettare i nuovi lavori creati. – lambacck
grazie @lambacck – pabloa98