Administrator
Published on 2026-08-11 / 0 Visits
0

Linux 进程排查速查命令清单(适配后端服务场景)

#AI

Linux 进程排查速查命令清单(适配后端服务场景)

优先推荐两套基础命令:
ps -ef → 查父子进程、PID、启动命令
ps aux → 查CPU、内存占用

一、基础查看

# 1. 完整进程列表(看PPID父进程,你最常用)
ps -ef

# 2. 带CPU、内存占用
ps aux

# 3. 树形展示进程父子关系(排查谁启动的进程)
ps -ef --forest
# BSD风格树形
ps axf

二、进程检索

# 方式1:管道过滤进程名
ps -ef | grep fastCrawler
# 去除grep自身那条记录
ps -ef | grep fastCrawler | grep -v grep

# 方式2(推荐)pgrep,只输出PID
pgrep fastCrawler
# 同时显示PID+命令
pgrep -a fastCrawler

# 根据PID反向查看进程详情
ps -ef | grep 12345

# 根据【父进程PID】查找所有子进程
ps -ef --ppid 12345

三、资源占用排查(程序卡顿、内存溢出、CPU打满)

# 按CPU使用率从高到低排序
ps aux --sort=-%cpu | head -15

# 按内存RSS占用从高到低排序
ps aux --sort=-rss | head -15

# 自定义输出:PID 用户 CPU 内存 启动时间 命令
ps -eo pid,user,pcpu,pmem,start,cmd --sort=-rss | head -15

# 实时动态查看进程(top)
top
# top 简化:只监控某个进程
top -p 12345

# htop(界面更友好,需安装 yum install htop / apt install htop)
htop

字段小注释:

  • %CPU:CPU占用百分比
  • %MEM:物理内存占比
  • RSS:进程实际占用物理内存
  • VSZ:虚拟内存总量

四、线程排查(爬虫多线程/协程卡死定位)

# 查看进程内部所有线程(LWP线程ID)
ps -eLf | grep 12345

# top查看线程:进入top后按 H
top -p 12345
# 或者直接命令
top -H -p 12345

五、进程启停、信号、杀死进程

# 温柔终止进程(允许程序执行收尾、释放资源)
kill 12345

# 强制杀死(程序卡死收不到普通信号慎用)
kill -9 12345

# 批量杀掉匹配名称的所有进程
pkill fastCrawler
# 温柔批量关闭
pkill -15 fastCrawler

# 查看进程启动的工作目录
pwdx 12345

# 查看进程打开的文件、网络句柄(排查文件泄露、端口占用)
lsof -p 12345

六、网络关联排查(爬虫常用,查看进程占用端口)

# 根据PID查占用端口
netstat -tulnp | grep 12345
# 新版推荐 ss,更快
ss -tulnp | grep 12345

七、进阶:查看进程环境变量、启动完整信息

# 查看进程环境变量(替换12345为真实PID)
cat /proc/12345/environ | tr '\0' '\n'

# 查看完整启动命令(不会截断)
cat /proc/12345/cmdline | tr '\0' ' '

八、高频排障组合模板(直接复制改名称/PID就能用)

模板1:排查爬虫内存暴涨

ps aux --sort=-rss | grep fastCrawler

模板2:找出爬虫所有PID,准备重启

pgrep -a fastCrawler

模板3:优雅重启流程示例

# 1. 查询PID
pgrep fastCrawler
# 2. 优雅关闭
pkill fastCrawler
# 3. 等待几秒确认是否退出
sleep 2
pgrep fastCrawler
# 4. 没退出再强制杀(尽量避免直接kill -9)
pkill -9 fastCrawler
# 5. 重新启动你的爬虫程序

⚠️ 避坑提醒

  1. 优先 kill / pkill(信号15),尽量少直接 kill -9
    • -9 强制杀会丢失缓存、不执行资源释放,爬虫可能出现文件损坏、连接泄漏
  2. grep xxx 会自带一条grep进程记录,看到不用慌张
  3. /proc 下信息仅进程存活时有效,进程消失文件同步删除