L'exécution de plusieurs scripts Python en même temps et puis de manière séquentielle
Je peut exécuter plusieurs scripts Python simultanément à partir d'un script bash comme cela;
#!/bin/bash
python pr1.py &
python pr2.py &
python aop.py &
python loader.py &
Mais que si je veux un lot à feu simultanément et après ils ont couru, commencer un peu plus de manière séquentielle. Ce travail?:
#!/bin/bash
python pr1.py &
python pr2.py &
python ap.py &
python loader.py
python cain.py
python able.py
- Quelle est votre question?
Vous devez vous connecter pour publier un commentaire.
Sur votre script bash, vous pouvez simplement ajouter le
wait
de commande comme ceci:wait
pourra, bien évidemment, attendez que toutes les emplois (le fond proccess vous avez tiré) être terminé pour qu'il continue.Une fois que vous mettez & à la fin, il s'exécute en tant que processus d'arrière-plan. Par conséquent, tous les scripts se terminant par & exécuter en parallèle.
Pour exécuter les 3 autres scripts dans l'ordre séquentiel, vous pouvez essayer les deux:
&&
exécute le script suivant que si le script précédent a exécuté avec succès||
exécute des scripts de manière séquentielle quel que soit le résultat du script précédentAvec le & commande vous exécutez les scripts en arrière-plan. vous pourriez ajouter une case dans une boucle pour exécuter la commande emplois et voir si elle continue à renvoyer une liste de tâches. quand il s'arrête, vous pouvez continuer avec votre prochain lot de python appels.
Pourquoi ne pas essayer ?
Si vous mettez les processus en arrière-plan, vous verrez la sortie de deux les scripts python dans le même temps.
Si vous l'exécuter sans le
&
, puis vous verrez le résultat à partir de la deuxième script après 6 secondes.PS: attention, pour prendre soin de dépendances et de l'accès simultané des problèmes lors de l'exécution en parallèle