Question

    

Cette question a déjà une réponse ici:

         

J'ai essayé ces deux méthodes:

os.system("python test.py")

subprocess.Popen("python test.py", shell=True)

Les deux approches doivent attendre que test.py se termine, ce qui bloque le processus principal. Je sais que "nohup" peut faire le travail. Existe-t-il un moyen Python pour lancer test.py ou tout autre script shell et le laisser fonctionner en arrière-plan?

Supposons que test.py ressemble à ceci:

for i in range(0, 1000000):
    print i

os.system () ou subprocess.Popen () bloquera le programme principal jusqu'à l'affichage de 1000000 lignes. Ce que je veux, c'est que test.py s'exécute en mode silencieux et affiche uniquement la sortie du programme principal. Le programme principal peut s'arrêter pendant que test.py est toujours en cours d'exécution.

Était-ce utile?

La solution

sous-processus.Popen (["python", "test.py")) devrait fonctionner .

Notez que le travail peut encore mourir lorsque votre script principal se termine. Dans ce cas, essayez sous-processus.Popen (["nohup", "python", "test.py"])

Autres conseils

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top