Seite 1 von 1

Befehl zum warten bis Prozess beendet ist --> prcoess.wait()

Verfasst: Dienstag 7. Oktober 2014, 06:58
von bob1704
Hallo zusammen,
ich habe ein python Skript, welches in defininierten Funktionen ein Prozess in der Shell startet.
Bsp.:

Code: Alles auswählen

	start_aniamtor = "a4_142 -s make_curves.ses"
	subprocess.call(start_aniamtor, shell=True)
Die Funktionen werden anschließend in in dem main Prozess aufgerufen.

Code: Alles auswählen

def main():
	make_energie_movies(param1,pamra2)
	make_response_curves(param1,pamra2)
Ist nun möglich, das der Prozess make_response_curves erst startet sobald make_energie_movies komplett in der Shell beendet ist??

Vielen Dank im Voraus
Gruß

Re: Befehl zum warten bis Prozess beendet ist --> prcoess.wa

Verfasst: Dienstag 7. Oktober 2014, 09:07
von BlackJack
@bob1704: Wenn Du dazu `subprocess.call()` verwendest dann ist es nicht möglich denn das wartet bereits selber auf das Ende des externen Prozesses. Wenn das zurückkehrt bevor die Berechnung abgeschlossen ist, dann führt der gestartete ``a4_142``-Prozess diese Berechnung nicht selber aus, sondern gibt das an irgend einen anderen Prozess weiter und beendet sich.

Das mit der Shell halte ich für überflüssig, es sei denn ``a4_142`` ist gar kein Programm sondern ein Shell-Alias. Ansonsten sollte der Aufruf so aussehen:

Code: Alles auswählen

subprocess.call(['a4_142', '-s', 'make_curves.ses'])
Dann hat man keinen zusätzlichen, überflüssigen Shell-Prozess dazwischen.