【发布时间】:2016-05-23 20:21:32
【问题描述】:
从烧瓶中启动子进程并重新启动烧瓶也会杀死子进程。
有人知道如何将进程与主进程分离吗?所以如果我杀死主进程,子进程将保持活动状态?
Es:
当我打开一条路线时,在主烧瓶应用程序中,例如 /store_changes 应用程序运行以下代码:
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)
这段代码将执行另一个需要很长时间才能处理的程序……如果我重新启动烧瓶应用程序,这个进程也会死掉,我需要找到一种方法来脱离主进程……
谢谢
【问题讨论】:
-
如果你想让它继续运行,即使
flask已经死了,那么谁从它的标准输出中读取?如果答案是否定的,那么放弃stdout=PIPE——不要使用stdout=PIPE,除非您在进程运行时从管道中读取数据,否则当相应的操作系统管道缓冲区填满时,它可能会挂起。 To hide the output, usestdout=DEVNULL。不相关:删除shell=True并将参数作为列表传递。
标签: python flask subprocess detach