2016-05-23 15 views
0

Lauch Subprozess von Kolben und Neustart Kolben wird den Subprozess auch töten.Starten Sie den Prozess von der Flasche

jemand weiß, wie kann man einen Prozess vom Hauptprozess lösen? Wenn ich also den Hauptprozess abbringe, bleibt der Subprozess aktiv?

Es:

Im Hauptkolben App, wenn ich eine Route öffnen, zum Beispiel/store_changes die App den Code auszuführen:

subprocess.Popen("python hdb_store_changes.py --country {0} --id_first_level {1} --threads {2} --qty {3} --username {4}".format(country.upper(),id_first_level,threads,fixedqty,username), shell=True,stdout=subprocess.PIPE) 

Dieser Code wird ein anderes Programm ausführen, wird dauert lange zu verarbeiten ... wenn ich den Kolben app dieser Prozess sterben auch neu zu starten, muss ich einen Weg finden, aus dem Hauptprozess zu lösen ...

Dank

+1

Sellerie. Hier ist eine Einführung: http://blog.miguelgrinberg.com/post/using-sellery-with-flask – wgwz

+1

Wenn Sie möchten, dass es weiter läuft, selbst wenn 'flask' ​​tot ist, wer liest von seinem Standout? Wenn die Antwort niemand ist, dann lösche "stdout = PIPE" -nicht "stdout = PIPE", es sei denn, du liest während des Prozesses aus der Pipe, andernfalls hängt sie, wenn der entsprechende OS-Pipe-Puffer voll ist. [Um die Ausgabe auszublenden, verwenden Sie 'stdout = DEVNULL'] (http://stackoverflow.com/q/11269575/4279). Unrelated: drop 'shell = True' und übergeben Sie die Argumente stattdessen als Liste. – jfs

Antwort

0

Das Sol Es wurde angenommen, dass Sellerie verwendet wird, wie von wgwz

erwähnt, aber die Lösung von J. F. Sebastian ist auch richtig.