J'essaie d'exécuter quelques commandes dans paralel, en arrière-plan, en utilisant bash. Voici ce que j'essaie de faire :
forloop {
//this part is actually written in perl
//call command sequence
print `touch .file1.lock; cp bigfile1 /destination; rm .file1.lock;`;
}
La partie entre les guillemets (``) crée un nouveau shell et exécute les commandes à la suite. Le problème est que le contrôle du programme d'origine ne revient qu'après l'exécution de la dernière commande. Je voudrais exécuter l'ensemble de la déclaration en arrière-plan (je n'attends aucune valeur de sortie/retour) et je voudrais que la boucle continue de fonctionner.
Le programme appelant (celui qui a la boucle) ne se terminera pas tant que tous les obus engendrés ne seront pas terminés.
Je pourrais utiliser des threads en perl pour créer des threads différents qui appellent des shells différents, mais cela semble excessif...
Puis-je lancer un shell, lui donner un ensemble de commandes et lui dire de passer en arrière-plan ?