如何查看 Linux 下正在运行的 Python 程序是哪一个

如何查看 Linux 下正在运行的 Python 程序是哪一个

在服务器上训练模型或者跑推理,经常会遇到一个典型问题:某个 GPU、某个 CPU 已经被占用,但是不知道是哪段 Python 在跑。想 kill,想知道它在跑什么文件,都不知道从哪找。

Linux 下最常用的思路只有两步:一,找 PID;二,通过 PID 把它启动时的命令行完整还原出来。

一

找到 PID

可以直接用 ps 去过滤 python

bash 复制代码
ps aux | grep python

ps aux 解释:

ps:process status(进程状态)

a:显示所有用户的进程(all users)

u:以 user 的方式显示字段(会显示 USER / START / %MEM 等)

x:显示没有 tty 的进程(daemon / nohup / 后台也能显示)

grep python 就是把输出中包含 python 的行筛选出来(注意不要把自身 grep 的行当成目标)

也可以用 top 交互式查看

bash 复制代码
top

找到 python 那一行,例如 PID = 21566

二

通过 PID 取出它的完整命令行

第一种更人类阅读的方式:

bash 复制代码
ps -p 21566 -o cmd

它会告诉你当时这段 python 是用什么命令启动的,例如:

复制代码
python train.py --data coco.yaml --epoch 300

ps -p 解释:只显示指定 PID

-o cmd:o=output,输出字段,这里只要 cmd(启动命令)

第二种更底层的方式:

bash 复制代码
cat /proc/21566/cmdline | tr '\0' ' '

/proc/PID/cmdline 是内核暴露出来的实际启动命令(参数之间用 0 字节分隔)

tr 是 translate,将 0字节替换成空格,从而变成可读文本。

三

总结

流程记一个:

1 找 PID → ps aux | grep python 或 top

2 用 PID 取命令 → ps -p PID -o cmd 或 cat /proc/PID/cmdline | tr '\0' ' '

无论是自己正在跑训练,还是别人占用了 GPU,只要有 PID,就能完全知道它在跑哪一个 python 文件,用了哪些参数,在干什么。

这两步是排查"到底是哪一段 python 正在运行"的最标准方法,建议记住。

相关推荐
xixingzhe28 小时前
图表中同比与环比的区别:看趋势还是看变化?
开发语言·python
默|笙8 小时前
【AI应用】认识机器学习与深度学习
人工智能·深度学习·机器学习
TangGeeA8 小时前
数据库、SQL 与 DB AI
数据库·人工智能·sql
火山引擎开发者社区8 小时前
案例实践 | 让检索为 Agent 而生:ContextSearch 重构企业售前知识库
人工智能
青蓝智慧马老师8 小时前
大模型应用落地,到底靠什么?RAG、智能体和上下文工程一次讲清
人工智能
JAVA_AI人工智能项目实战9 小时前
深度学习实验笔记
人工智能·深度学习·语言模型·自然语言处理
forest_099 小时前
当 AI 搜索开始「自我进化」,谁来进化它的核实?——「已核实」结论复核器:3 条结论挖出 2 个洞(附可运行代码)
人工智能·python·机器学习·prompt·agi
金海星科技9 小时前
船舶交通管理中心的人工智能值守:从“听、说、读、写“看人机协同
人工智能·macos·xcode
释厄6239 小时前
AI 军备竞赛悖论——为 AI 卖游戏但 AI 需要游戏母场景
人工智能·游戏·kotlin
十铭忘9 小时前
Orin新系统常用软件安装教程
人工智能