news 2026/10/21 9:55:48

ps aux | grep app.py 查看进程是否正常运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ps aux | grep app.py 查看进程是否正常运行

ps aux | grep app.py 查看进程是否正常运行

1. 引言:服务监控的重要性

在部署基于Python的Web应用时,确保服务持续稳定运行是运维工作的核心任务之一。特别是在使用Flask、FastAPI等框架构建图像处理系统(如本镜像中的app.py)时,服务可能因异常退出、资源不足或依赖错误而中断。

本文将围绕命令ps aux | grep app.py展开,深入解析其在服务状态检查、进程定位与故障排查中的关键作用,并结合实际场景——“fft npainting lama重绘修复图片移除物品”这一AI图像修复系统的部署与维护,提供一套完整的工程化实践方案。


2. 命令原理与工作机制解析

2.1 ps 命令详解

ps是 Linux 系统中用于显示当前进程状态的工具,aux参数组合含义如下:

  • a:显示所有用户的进程
  • u:以用户友好的格式输出(包含CPU、内存占用等)
  • x:包括未关联终端的后台进程

执行ps aux将列出系统中所有正在运行的进程,每行代表一个进程,典型输出字段包括:

字段含义
USER进程所属用户
PID进程ID(唯一标识)
%CPUCPU使用率
%MEM内存使用率
VSZ虚拟内存大小(KB)
RSS物理内存常驻集大小(KB)
TTY关联终端
STAT进程状态(R=运行,S=睡眠,Z=僵尸等)
START启动时间
TIME占用CPU总时间
COMMAND启动命令

2.2 grep 过滤机制

grep是文本搜索工具,通过管道符|接收前一个命令的输出并进行模式匹配。

ps aux | grep app.py

该命令的作用是:从所有进程中筛选出命令行中包含app.py的记录。

注意:由于grep app.py自身也会出现在进程列表中,因此通常会看到两条结果:

  • 一条是真正的python app.py或gunicorn ... app:app
  • 另一条是grep --color=auto app.py

可通过以下方式排除自身干扰:

ps aux | grep [a]pp.py

利用正则表达式[a]pp.py匹配app.py,但不会匹配到grep [a]pp.py本身。


3. 实际应用场景分析

3.1 验证WebUI服务是否启动成功

根据提供的镜像文档,服务启动方式为:

cd /root/cv_fft_inpainting_lama bash start_app.sh

假设start_app.sh内部调用了:

python app.py --host 0.0.0.0 --port 7860

此时可通过以下命令验证服务是否存活:

ps aux | grep app.py

预期输出示例:

root 12345 0.8 5.2 1234567 89012 ? Ssl 10:30 0:15 python app.py --host 0.0.0.0 --port 7860 root 12346 0.0 0.1 12345 678 pts/0 S+ 10:35 0:00 grep --color=auto app.py

其中 PID 为12345的进程即为目标服务。

3.2 判断服务是否卡死或无响应

即使进程存在,也不代表服务功能正常。需结合多维度判断:

方法一:检查CPU和内存占用
  • 若%CPU ≈ 0%且长时间无变化 → 可能已卡住或未加载模型
  • 若%MEM > 80%→ 存在内存泄漏风险,尤其在大图推理时
方法二:结合日志文件分析

查看启动脚本对应的日志输出:

tail -f /root/cv_fft_inpainting_lama/logs/start.log

关注是否有如下信息:

INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:7860

若缺少此类提示,则说明服务虽启动但未完成初始化。

方法三:端口监听状态检测

配合lsof检查端口占用情况:

lsof -ti:7860

若有输出(如12345),表示端口已被监听;否则即使进程存在也可能未绑定端口。


4. 故障排查与恢复流程

4.1 常见问题分类与应对策略

问题现象可能原因解决方法
`ps auxgrep app.py` 无输出服务未启动或已崩溃
有进程但无法访问网页端口未监听或防火墙限制使用 `netstat -tuln
进程频繁重启模型加载失败或OOM查看日志,减少图像尺寸或升级资源配置
grep返回多个app.py进程多次启动导致冲突终止旧进程后重新启动

4.2 强制终止并重启服务

当服务无响应时,可按以下步骤操作:

步骤1:查找目标进程PID
ps aux | grep app.py

获取主进程PID(如12345)

步骤2:发送终止信号

优先使用优雅关闭:

kill 12345

等待10秒,若仍未退出,强制终止:

kill -9 12345
步骤3:清理残留端口

有时端口仍被占用,需手动释放:

lsof -ti:7860 | xargs kill -9
步骤4:重新启动服务
cd /root/cv_fft_inpainting_lama nohup bash start_app.sh > logs/restart.log 2>&1 &

使用nohup和&实现后台持久化运行。


5. 自动化监控建议

对于生产环境或长期运行的服务,建议建立自动化监控机制。

5.1 编写健康检查脚本

创建/root/cv_fft_inpainting_lama/check_health.sh:

#!/bin/bash # 检查app.py进程是否存在 if pgrep -f "app.py" > /dev/null; then echo "$(date): Service is running." else echo "$(date): Service not found! Restarting..." cd /root/cv_fft_inpainting_lama nohup bash start_app.sh > logs/auto_restart.log 2>&1 & fi

赋予执行权限:

chmod +x check_health.sh

5.2 添加定时任务(crontab)

每5分钟检查一次:

crontab -e

添加:

*/5 * * * * /root/cv_fft_inpainting_lama/check_health.sh

即可实现自动拉起服务。

5.3 结合HTTP健康探测(进阶)

若支持,可在app.py中添加/health接口:

@app.get("/health") def health(): return {"status": "ok", "timestamp": time.time()}

然后用curl定期检测:

curl -f http://localhost:7860/health

比单纯查进程更精准反映服务可用性。


6. 总结

6. 总结

本文围绕ps aux | grep app.py这一基础但至关重要的Linux命令,系统阐述了其在AI图像修复系统部署中的核心价值:

  • ✅进程可见性:快速确认app.py是否处于运行状态
  • ✅故障定位能力:结合PID、端口、日志实现多维诊断
  • ✅运维恢复手段:掌握kill、lsof、nohup等配套工具链
  • ✅自动化扩展路径:通过脚本+crontab实现无人值守运维

对于“fft npainting lama重绘修复图片移除物品”这类基于WebUI的AI应用,服务稳定性直接影响用户体验。掌握ps aux | grep app.py不仅是排查连接失败的第一步,更是构建健壮AI系统的基础技能。

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 11:35:43

Vllm-v0.11.0模型微调指南:低成本体验完整训练流程

Vllm-v0.11.0模型微调指南:低成本体验完整训练流程 你是不是也遇到过这种情况:手头有个不错的小样本数据集,想试试对大模型做微调验证想法,但公司GPU资源紧张,排队等一周都轮不到?或者自己本地显卡太小&am…

作者头像 李华
网站建设 2026/10/11 8:49:56

直接搞通信才是上位机的灵魂,界面那玩意儿自己后面加。OPC这玩意儿在工业现场就跟吃饭喝水一样常见,先说DA再搞UA,咱们玩点真实的

C# opc ua/da通信源代码示例,应用简单直接可使用。 工业上位机必备代码,不含界面,不含界面,不含界面,重要的事说三遍先上OPC DA的硬核代码,这玩意儿用Com组件得劲。注意引用Interop.OPCAutomation.dll&…

作者头像 李华
网站建设 2026/10/10 8:06:25

11 套 QT_c++ 和 C# 工业上位机 MES 编程实战分享

11套QT_c和C#工业上位机MES编程全部都是现场应用。 1,C#多工位力位移监控! 完整应用,vs2015开发,用到dx控件,我会赠送。 这是一个工业应用,下位机为plc。 设备启动后上下位机通信完成全自动动作。 tcpip扫码&#xff…

作者头像 李华
网站建设 2026/10/19 19:26:00

Qwen3-4B-Instruct-2507智能笔记:学术资料自动整理

Qwen3-4B-Instruct-2507智能笔记:学术资料自动整理 1. 引言:小模型大能量,学术场景的轻量化革命 随着大模型在科研、教育和知识管理领域的深入应用,研究者对高效、低成本、可本地部署的AI工具需求日益增长。传统大模型虽然性能强…

作者头像 李华
网站建设 2026/10/19 5:05:27

Qwen3-VL MoE架构实战:大规模云端服务部署参数详解

Qwen3-VL MoE架构实战:大规模云端服务部署参数详解 1. 引言 随着多模态大模型在视觉理解、语言生成和跨模态推理能力上的持续突破,Qwen3-VL 系列的发布标志着阿里云在视觉-语言智能领域的又一次重大跃进。作为 Qwen 系列中迄今最强大的视觉语言模型&am…

作者头像 李华