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 =

我正在尝试使用python的
子流程
模块启动一个需要很长时间的java流程

我实际做的是使用
多处理
模块启动一个新流程,并使用该流程,使用
子流程
模块运行
java-jar

这很好,但是当我启动新进程时,java进程将替换运行python
process
的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循环以启动新流程。