Python Process类开启多层级进程杀不死问题解决(从父进程杀死子进程)

文章讨论了在Python中使用multiprocessing模块创建多层级子进程时遇到的问题,即当父进程杀死自身子进程时,二级子进程仍然存活,可能导致内存泄漏和系统宕机。作者提供了问题分析,指出仅杀死父进程不能结束所有子进程,并提出了一个解决方案,即使用进程池记录所有子进程PID,在主进程中通过发送SIGKILL信号来统一杀死所有子进程,确保进程完全终止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python Process类开启多层级进程杀不死问题

问题描述

在使用python multiprocess包下的Process打开子进程,并在打开的子进程中再打开一个二级子进程,这时候发现kill掉子进程后,二级子进程并没有被杀死,甚至导致内存泄漏宕机。

上代码:

import time
from multiprocessing import Process, Queue


def run1(q_message: Queue):
    print("this is sub-process of sub-process 1, pid: ")
    while True:
        q_message.put(False)


def sub_process_1(q_message: Queue):
    print("this is sub-process 1 of main process")
    p = Process(target=run1, args=(q_message, ))
    p.start()
    print("sub-sub-process pid: ", p.pid)


def main():
    q_messages = Queue(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值