J'ai trois fichiers .py que je veux exécuter en même temps dans un fichier de script Python. J'ai d'abord appelé subprocess.call()
trois fois (une fois pour chaque fichier .py) mais je me suis souvenu qu'il bloque jusqu'à ce que la commande soit terminée. J'ai essayé subprocess.Popen(['screen', 'python_file'])
puisque je crois qu'il ne bloque pas mais quand je vérifiais les processus avec screen -ls
il y avait seulement un processus fonctionnant. Comment faire fonctionner les trois programmes en même temps avec un script Python? Dois-je utiliser la bibliothèque multiprocessing
ou multithreading
? Edit: Les autres processus ne sont pas supposés se terminer car ils sont exécutés dans une boucle infinie. Voici exactement ce que j'avais dans mon fichier de script Python. J'utilise screen
parce que chaque fichier .py a stdout connecté sur le terminal et je veux être en mesure de voir ce qui est connecté pour chacun d'eux.Exécuter plusieurs fichiers .py en même temps
subprocess.Popen(['screen', './submitter.py'])
subprocess.Popen(['screen', './worker.py'])
subprocess.Popen(['screen', './tester.py'])
Oui multitraitement. – sihrc
'Popen' fait déjà ce que vous voulez. Si vous ne pouvez voir qu'un seul processus, cela signifie simplement que les autres processus ont déjà terminé leur travail (ou peut-être qu'ils sont sortis en raison d'une erreur). – Bakuriu
Cela fonctionne pour moi. Pouvez-vous nous montrer un exemple? – tdelaney