Tâche : exécuter des blocs composés de 3 à 5 commandes (en parallèle/en arrière-plan). Exemple de bloc :
dd if=/dev/urandom of=/mnt/1/x bs=1024 count=1024000000 &
dd if=/dev/urandom of=/mnt/2/x bs=1024 count=1024000000 &
dd if=/dev/urandom of=/mnt/3/x bs=1024 count=1024000000 &
Quand c'est fait, le bloc suivant doit s'exécuter. Je suppose que cela peut être fait via des fichiers de verrouillage :
task1.sh :
real_task1 real_param1 ; rm /var/lock/myscript/task1.lock
task2.sh :
real_task2 real_param1 ; rm /var/lock/myscript/task2.lock
...
taskgen.sh :
# loop
# while directory isn't empty - wait...
gen_tasks.pl # build task files from some queue
for i in 1 2 3; do touch /var/lock/myscript/task$i.lock ; done
./task1.sh &
./task2.sh &
./task3.sh &
# if task1.sh doesn't exits then exit, else loop waits for files to be deleted
On peut trouver un certain nombre de méthodes pour vérifier si le répertoire est vide ici Je ne sais pas lequel utiliser ;
Question : une meilleure façon de mettre cela en œuvre ?
P.S. Méthode de rapport d'état possible :
command && report_good_state.sh taskid ; report_state_done.sh taskid; rm /var/lock/myscript/taskN.lock