吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 309|回复: 1
收起左侧

[求助] Python程序在关闭后仍在运行(multiprocessing)

[复制链接]
zaq1103 发表于 2023-12-6 22:48
本帖最后由 zaq1103 于 2023-12-6 22:51 编辑

[Python] 纯文本查看 复制代码
import psutil
import subprocess
import multiprocessing
global a
a=1
def monitor():
    def is_task_manager_running():
        for proc in psutil.process_iter():
            if proc.name() == 'Taskmgr.exe':
                proc.terminate()
    while a:
        is_task_manager_running()

def windows():
      #内容省略
       a=0

if __name__ == '__main__':
    multiprocessing.freeze_support()
    process1 = multiprocessing.Process(target=window)
    process2 = multiprocessing.Process(target=monitor)
    process1.start()
    process2.start()  
    process1.join()
    process2.join()   

这是一个在运行windows()函数同时监控任务管理器是否运行的程序,如果运行则自动关闭。但是实际使用中发现,程序运行结束后(无论是IDLE中还是打包为exe后),后台仍会继续监控并关闭任务管理器(即使程序已关闭)。只能通过重启解决。
大佬们有解决方法吗?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

T4DNA 发表于 2023-12-7 13:07
本帖最后由 T4DNA 于 2023-12-7 13:16 编辑

axiet介绍
定义一个清除函数

def cleanup():
    print("Cleanup multiprocessing called")
    for process in multiprocessing.active_children():
        process.terminate()
        process.join()

注册到axiet

atexit.register(cleanup)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zaq1103 + 1 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表