为什么 VS Code 停止调试后 Python 进程还在?

news/2025/11/3 19:52:47/文章来源:https://www.cnblogs.com/solarlemon/p/19188039

1 问题现象

在使用 VS Code 调试 PyTorch 项目时,即使点击了“停止”按钮,通过 htopps aux 仍能看到大量类似如下的进程持续运行:

/home/shi/miniconda3/envs/inpainting/bin/python ... torch/_inductor/compile_worker/__main__.py --workers=32 ...

这些进程占用 CPU 和内存,且不会自动退出,即使重启 VS Code 也无法清除。如下图所示
|800

2 根本原因

这些并不是普通的子进程,而是 PyTorch Inductor 的编译工作进程(Compile Workers)。当你使用 torch.compile()(或某些高版本 PyTorch 自动启用编译优化)时,PyTorch 会启动多个后台进程用于并行编译模型以提升性能。

然而,VS Code 的调试器(debugpy)在停止会话时,只会终止主 Python 进程,不会清理这些由 PyTorch 启动的独立编译进程。它们变成“孤儿进程”,继续在后台运行。

3 快速清理方法

使用以下命令可一次性清除所有残留进程:

ps aux | grep "inpainting/bin/python" | grep -v grep | awk '{print $2}' | xargs kill -9

4 我的解决方案

4.1 方法:优雅管理子进程

始终用 if __name__ == '__main__': 保护主逻辑

# your_script.py
import torchdef main():model = torch.compile(...)  # 会触发 compile_worker# 你的训练/推理逻辑if __name__ == '__main__':main()

作用:防止子进程重复导入并再次启动新进程。

5 VS Code 用户技巧

  • 在 VS Code 终端里运行程序后,不要只点 Stop,而是按 Ctrl+C 两次(发送 SIGINT),有时比点击 Stop 更可靠。
  • 使用 --multiprocessing-start-method=spawn(在 Linux 上默认是 fork,容易出问题)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins更换IP后,访问速度慢的问题解决.251103

到jenkins系统设置,修改参数为新ip地址,即可。.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zsleft {…

Modbus协议地址模型详解学习笔记

有些事情,死了也要做。但有些事情,是死也不能做的1️⃣ 核心思想:地址 = 数据的“门牌号” 在上一篇笔记中,我们知道了Modbus有4个核心存储区:输出线圈 (0区) 输入线圈 (1区) 输入寄存器 (3区) 输出寄存器 (4区)但…

首次博客

第一次博客作业 一、自我介绍 102301216;我是懒洋洋;我的爱好是编程和篮球;我最喜欢麻辣香锅(海棠园二层);推荐歌曲《追梦赤子心》;想说的话:代码改变世界,努力成就未来。 二、思考 2.1 初入大学时对计算机专…

CF2161 Pinely Round 5 (Div. 1 + Div. 2) 游记(VP)

中途为和队友 vp 比赛中断,实际表现应该还行。省流 中途为和队友 vp 比赛中断,实际表现应该还行。11.3 内含剧透,请vp后再来。 不是题解!!!!!!! 赛时 A 题是一个人参加 div1 和 div2 的比赛,每次参加可以增…

以太网交换技术

1. 以太网协议最通用的通信协议标准2. 单播,广播,组播单播:mac地址:00:开头 广播:mac地址:FF:FF:FF:FF:FF:FF 组播:mac地址:01:开头 3. 以太网卡 4. 以太网帧格式

2025-11-03 NOIP 模拟赛1 赛后总结

很显然,我今年被 AC 自动机做局了。 前言 先推销一下自己写的游记。 其实今年 ST3 的 AC 自动机做法非常显然,我甚至想出来了一半。但我最后跑去想 T4 了。 与 300+pts 失之交臂。 你们不觉得 Trie 树和 Fail 指针是…

flex:1 什么意思

flex: 1 是 Flexbox 布局中的一个非常常用的属性,它用于 让一个元素在容器中占据剩余的空间。具体来说,flex: 1 是 flex-grow, flex-shrink, 和 flex-basis 的简写。 解释 flex: 1 的含义:flex-grow: 1:元素将会扩…

以销定采是什么?为什么越来越重要?

我这几年一直在帮制造业企业做数字化项目,其中一个变化很明显——越来越多老板开始主动提“以销定采”这个词。 有趣的是,这个词很多人挂在嘴上, 但真要问一句: “你们现在是怎么以销定采的?” 十个里有八个会愣一…

2025年优质少儿编程机构揭秘:提供国家等级测评+优质的课程体系+一站式赛考服务!

据中国教育学会最新统计数据显示,2025年中国少儿编程学员规模突破500万人,同比增长20%,但调查显示,72%的家长在选择编程学习机构时面临“课程质量参差不齐”、“教师资质难辨”、“学员案例夸大”等核心痛点。数据…

Modbus协议功能码详解学习笔记

混吃等死,小富即安,飞黄腾达,是因为各有各的缘法,未必有高下之分。1️⃣ 核心思想:通信 = 数据交互 + 行为指令 在上一篇笔记里,我们知道了:通信的本质是数据交互 —— 设备之间要交换数据。但光有“数据”还不…

议论文素材分类整理

目录 I.「名人」分类(按时代顺序)古代专题 魏晋风度 专题 唐宋八大家近代史专题 革命先烈 专题 新文化运动现代史专题 专题 改革开放歪果仁II.「名言」分类古诗文 近现代 外国III.「tag」分类家国情怀(爱国)民族英…

使用WSL挂载U盘及SD卡外设的方案

使用WSL挂载U盘及SD卡外设的方案今天在学习linux驱动开发的时候,因为使用的是WSL,导致我的内存卡识别不到,无法烧录所用程序,下面是解决方案通过指令sudo mount -t drvfs F:\ ./mnt/f(SD卡格式为FAT32),可以将对…

ESP32 I2C通信

I2C简述 两线式串行总线(SDA和SCL),半双工通信方式(支持来回通信,但每次只能一方通过) 通用函数:Wire.begin() 作为主机加入 Wire.begin(27) 只有一个参数的是作为从机加入 主机向从机发送数据 befinTransmission()开…

day06-自动出题工作流

今日内容 1 自动出题工作流 # 1 需求分析-传统出题需教师手动筛选知识点、设计题型、斟酌难度,耗时且繁琐。自动出题工作流可依据预设的知识点大纲,快速从题库中匹配对应内容,生成不同题型的题目。例如,从高中生物…

推送docker镜像到github

最近在给新生赛出题,服务器没法直接在本地build镜像,学了下怎么推送到github上然后再拉取到服务器在本地的docker上build一个镜像 docker build -t image_name .把镜像标记为ghcr.io的格式 docker tag image_name:la…

软件工程学习日志2025.11.3

软件设计模式 - 建造者模式实战 • 实验来源:石家庄铁道大学信息学院实验5 • 实验类型:模仿型实验 • 核心目标:深入理解建造者模式的原理并掌握实际应用 🔍 建造者模式核心理解 模式动机 建造者模式的核心价值在…

day05-智能换脸-12306出行建议-提取音频工作流

今日内容 1 智能换脸1.1 目标 # 1 用户上传两张人像,把其中一张人脸换到另一个人脸上----》Coze工作流-工作流、智能体---》使用代码调用---》借助于api-python代码、java,go。。。。-postman调用-后期做成软件-app,…

x./AC自动机

前置::trie , kmp AC自动机 #include <bits/stdc++.h> using namespace std; typedef long long ll;const int MAXN = 2e5 + 5; // 模式串长度之和int tr[MAXN][26], fail[MAXN], tot = 0; int e[MAXN], sum[M…

P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题

最大公约数(即 gcd)和最小公倍数(即 lcm)的求法。该题的关键点在于,两个数的积等于它们最大公约数和它们最小公倍数的积。公式表示为 \(a \times b = \text{gcd}(a,b) \times \text{lcm}(a,b)\)。设作为答案的两个…

SQL Server 并发控制 第四篇:Snapshot Isolation (SI) 和 Read Committed Snapshot Isolation (RCSI)

乐观控制模式假定阻塞很少,快照隔离通过使用行版本控制来避免大多数锁定和阻塞。当数据被修改时,受影响行的已提交版本会被复制到 tempdb 并赋予版本号,此操作称为写时复制 (Copy on Write),并用于所有的插入、更新…