Frage

    

Diese Frage bereits eine Antwort hier:

         

Ich habe versucht, diese beiden Methoden:

os.system("python test.py")

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

müssen Beide Ansätze bis test.py Oberflächen blockierHauptProzess warten. Ich weiß „nohup“ die Arbeit machen kann. Gibt es eine Python Weise test.py oder anderen Shell-Skripte zu starten, und lassen Sie es im Hintergrund laufen?

Es sei test.py ist wie folgt:

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

Sowohl os.system () oder subprocess.Popen () wird bis zum Hauptprogrammblock 1000000 Ausgabezeilen angezeigt. nur das, was ich will, ist lassen test.py läuft still und Hauptprogrammausgabe angezeigt werden soll. Das Hauptprogramm kann quie während test.py noch ausgeführt wird.

War es hilfreich?

Lösung

subprocess.Popen(["python", "test.py"]) href="http://docs.python.org/library/subprocess.html#replacing-the-os-spawn-family" rel="noreferrer"> sollte funktionieren .

Beachten Sie, dass der Job könnte sterben immer noch, wenn Ihr Haupt Skript beendet. In diesem Fall versuchen Sie subprocess.Popen(["nohup", "python", "test.py"])

Andere Tipps

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top