如何查看 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 正在运行"的最标准方法,建议记住。

相关推荐
罗西的思考2 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab2 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab2 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
孟健4 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
格砸4 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云4 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny8654 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔4 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung5 小时前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_5 小时前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能