python-3.x - 使用“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)
解决方案
推荐阅读
- javascript - Echo PHP/JS 有问题
- image - 如何在虚拟机中使用 Jmeter 和 Docker?
- python - 具有一个共享参数的 3 个数据集的曲线拟合
- python-3.x - 正则表达式中的 unicode 字符串与字符
- php - 电子商务商店结账时的重定向
- ansible - 仅当某个服务正在运行时,如何在 ansible 中运行任务?
- c# - 将字典转换为自定义 KeyValuePair 类型列表的最佳方法是什么?
- scala - shapeless:为 HList 派生一个 Tupler
- reactjs - React useState 变量更改未反映
- react-native - 如何使用 expo-task-manager 在世博会的后台运行 setInterval