首页 > 解决方案 > 使用“kill -9”命令杀死主进程时,Python子进程不会被杀死

问题描述

“main.py”将触发另一个python(test.py)的子进程。当我使用“kill -9 main.py pid”杀死 main.py 进程 ID 时,子进程仍在后台运行。用完整的代码帮助我如何解决这个问题。

主文件

try: p=subprocess.Popen(['python3', 'test.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = p.communicate() if p.returncode != 0: raise subprocess.CalledProcessError(p.returncode,args) except subprocess.CalledProcessError as exc: print("Subprocess failed") except Exception as a: print("Exception") finally: p.terminate() p.kill()

尝试使用“os.system()”“signal”,但对我没有任何作用。

import os, signal, subprocess, time try: proc1 = subprocess.Popen(args=['python3' 'test.py']).pid except Exception as a: print("Exception") finally: os.kill(proc1, signal.SIGTERM)

标签: python-3.xsubprocesskill-processmanual

解决方案


推荐阅读