Python 使用子流程模块启动长时间运行的流程
我正在尝试使用python的Python 使用子流程模块启动长时间运行的流程,python,process,subprocess,multiprocessing,Python,Process,Subprocess,Multiprocessing,我正在尝试使用python的子流程模块启动一个需要很长时间的java流程 我实际做的是使用多处理模块启动一个新流程,并使用该流程,使用子流程模块运行java-jar 这很好,但是当我启动新进程时,java进程将替换运行pythonprocess的python进程。我希望java作为子进程运行,当启动新multiprocessing.process的进程死亡时,运行java的进程也会死亡 这可能吗 谢谢 编辑:这里有一些代码来澄清我的问题: def run_task(): pargs =
子流程
模块启动一个需要很长时间的java流程
我实际做的是使用多处理
模块启动一个新流程,并使用该流程,使用子流程
模块运行java-jar
这很好,但是当我启动新进程时,java进程将替换运行pythonprocess
的python进程。我希望java
作为子进程运行,当启动新multiprocessing.process
的进程死亡时,运行java
的进程也会死亡
这可能吗
谢谢
编辑:这里有一些代码来澄清我的问题:
def run_task():
pargs = ["java -jar app.jar"]
p = Popen(pargs)
p.communicate()[0]
return p
while(True):
a = a_blocking_call()
process = Process(target=run_task)
process.start()
if not a:
break
我希望当执行while循环的进程到达
break
行时,运行run\u task
的进程与运行java
的进程一起被终止。这可能吗?我认为您应该展示一些代码,不清楚您是如何同时使用子进程和多进程的
从文档中可以看出,子流程应该生成,而不是替换新流程启动的流程。你确定那不会发生吗?一个测试用例显示它不是很好
您可能会从中得到一些提示,也许我误解了这个问题,但是为什么您需要
多处理
模块?您可以单独使用子流程
函数启动子流程。我需要启动新流程,然后继续运行while循环以启动新流程。