如何在终端中通过PID或程序名终止GPU进程(nvidia-smi示例)
我来分享两种实用的方法解决你的问题,亲测有效:
1. 通过nvidia-smi结合关键词+PID终止GPU进程
步骤非常清晰:
- 先运行
nvidia-smi查看所有占用GPU的进程,找到你要终止的进程对应的关键词(比如python)和PID。 - 要是想批量过滤并终止目标进程,可以用管道命令一步到位:
拆解下各部分作用:nvidia-smi | grep "python" | awk '{print $5}' | xargs kill -9nvidia-smi:列出当前GPU的使用情况和关联进程grep "python":过滤出包含python关键词的进程行awk '{print $5}':提取第5列的PID值(小提醒:不同系统/环境下PID所在列可能是第4或第5列,你可以先手动查看nvidia-smi的输出确认列数)xargs kill -9:把提取到的PID作为参数,发送强制终止信号(-9能确保进程被彻底杀死,避免残留)
- 如果是单个进程,也可以手动记下PID后直接运行:
kill -9 <你的PID>,权限不够的话加sudo即可:sudo kill -9 <你的PID>
2. 针对特定程序(如Python)终止GPU进程
除了结合nvidia-smi的方法,还有两种终端命令可选:
方法一:精准定位GPU上的目标进程(推荐)
用nvidia-smi的查询参数直接输出PID和进程名,避免列数变化的问题,更可靠:
nvidia-smi --query-compute-apps=pid,process_name --format=csv,noheader,nounits | grep "python" | awk '{print $1}' | xargs kill -9
方法二:直接终止所有目标程序进程(注意误杀风险)
如果你确定要终止所有正在运行的Python进程(不管是否占用GPU),可以用更简洁的命令:
pkill -9 python
或者:
killall -9 python
⚠️ 注意:这两个命令会终止所有名为python的进程,包括不占用GPU的程序,所以如果有其他重要Python进程在运行,一定要谨慎使用!
针对你的示例:当nvidia-smi显示两个Python进程时,用上面的精准过滤方法就能批量终止它们,之后再运行nvidia-smi就能看到GPU进程被清空的状态了。
内容的提问来源于stack exchange,提问作者salehinejad
相关产品推荐
相关产品推荐

