如何查看 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 pythontop

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

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

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

相关推荐
Katecat996632 小时前
蚊子幼虫与蛹的自动检测与分类-VFNet_R101_FPN_MS-2x_COCO实现详解
人工智能·数据挖掘
云空2 小时前
日常高频英语口语实用表达播客
人工智能·机器人
愚公搬代码2 小时前
【愚公系列】《AI短视频创作一本通》020-AI短视频创作实例精解(文旅宣传AI短视频实例精解)
人工智能·音视频
叶庭云2 小时前
GitCode 与 GitHub 平台能力深度对比:聚焦于 AI 辅助开发与 Agent 自动化能力
人工智能·github·gitcode·源代码托管平台·ai 辅助开发·agent 自动化能力·易用性
【赫兹威客】浩哥2 小时前
农作物病虫害检测数据集分享及多版本YOLO模型训练验证
人工智能·计算机视觉·目标跟踪
WK-Q2 小时前
【论文解读】Transformers are RNNs
人工智能·语言模型·大模型·线性注意力
looking_for__2 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·网络
云中飞鸿2 小时前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
啊阿狸不会拉杆2 小时前
《机器学习导论》第 10 章-线性判别式
人工智能·python·算法·机器学习·numpy·lda·线性判别式