发布于2026-08-22 阅读(0)
扫一扫,手机访问
要想确认麒麟OS中Python程序的运行状态以及资源占用情况,我们可以这样做:用ps -ef | grep python来筛选进程;通过top命令,按P键排序查看实时负载;使用pgrep -f "script.py"精准获取PID;借助lsof -p PID验证文件打开状态。另外,还可以结合systemctl is-active与ps aux双重校验systemd服务的真实存活性。

你需要确认麒麟OS中某个Python程序是否仍在运行、占用多少资源,或排查脚本卡死、重复启动等问题,必须准确识别其进程存在性、主进程PID及实际资源消耗情况。
打开终端(Ctrl + Alt + T),输入以下命令:
ps -ef | grep python
该命令会列出所有含“python”字符串的进程行,像你手动运行的脚本、VS Code的Pylance语言服务器、conda环境中的训练任务等都在其中。注意输出里第二列是PID,第三列是PPID(父进程ID),最后一列是完整启动命令——真正由你启动的Python脚本一般带有.py后缀和明确路径,而编辑器或IDE相关进程往往有server.bundle.js或node调用的痕迹,可别误杀。
若只关心用户级Python进程,改用:
ps -u $USER | grep python
在终端中执行 top 命令,界面启动后立即按大写 P 键,使进程按CPU使用率从高到低排序;再按一次 P 可切换为升序。此时Python进程若正在密集计算(如模型训练),会稳定排在前列。
观察其RES(物理内存占用)、%CPU、TIME+(累计CPU时间)三列:若TIME+增长极快但%CPU长期低于10%,可能是I/O阻塞或GIL争用;若%CPU持续99%且RES缓慢上涨,需警惕内存泄漏。
按 q 退出top。
方法一:通过脚本文件名反查PID
假设你的脚本叫 train_model.py,且位于 /home/user/project/ 下,执行:
pgrep -f "train_model.py"
它会直接输出匹配进程的PID数字,没有多余文本,适合脚本调用。如果返回空,说明该脚本当前未运行。
方法二:用lsof查看Python进程打开的文件
先获取疑似PID(比如从ps结果中看到32299),再执行:
sudo lsof -p 32299
检查输出中COMMAND列为python,且PWD(当前工作目录)和NAME(打开的.py文件)与预期一致。若NAME列大量显示 /proc/32299/fd/* 或全是 socket,则该进程可能已僵死,仅剩内核句柄。
第一步:用 systemctl is-active 判断是否为systemd托管服务
若该Python程序是以systemd服务形式部署(如 /etc/systemd/system/myapp.service),则执行:
systemctl is-active myapp
返回 active 才代表systemd认为它在运行;但仅此不够——必须接着执行第二步。
第二步:用 ps 检查主进程是否真实存在
根据服务配置中 ExecStart= 后的命令,例如 /usr/bin/python3 /opt/myapp/main.py,执行:
ps aux | grep "/opt/myapp/main.py" | grep -v grep
若无输出,说明进程已崩溃,但systemd尚未更新状态;此时应立即执行 systemctl status myapp 查看日志末尾的 failed 原因。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9