Я пытаюсь запустить процесс Java, который должен занимать много времени, с использованием модуля subprocess
python.
Что я на самом деле делаю, так это использую модуль multiprocessing
для запуска нового Процесса, и используя этот процесс, использую модуль subprocess
для запуска java -jar
.
Это работает нормально, но когда я запускаю новый процесс, процесс java заменяет процесс python, выполняющий python Process
. Я хотел бы, чтобы 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
Я хочу, чтобы процесс, выполняющий run_task
, был уничтожен вместе с процессом, выполняющим java
, когда процесс, выполняющий цикл while, достигает строки break
. Это возможно?