Wie zu starten und externes Skript im Hintergrund laufen? [Duplikat]
-
05-07-2019 - |
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.
Lösung
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")