解决 Ctrl+C 后的 resource_tracker 警告和信号量泄漏问题
当使用 multiprocessing 编写 Python 程序并按 Ctrl+C (SIGINT) 中断时,会看到类似警告:
/usr/lib/python3.13/multiprocessing/resource_tracker.py:264: UserWarning: resource_tracker: There appear to be 120 leaked semaphore objects to clean up at shutdown.
「服务器内存持续增长,但业务代码中找不到泄漏点?」 当你信心满满地排查完所有对象创建、数据库连接、缓存使用后,却发现罪魁祸首是一个毫不起眼的 shutdown(wait=False)——这正是我刚刚经历的真实故事。