Linux

Linux 进程状态

·3 分钟阅读·1033 字

说明 Linux 进程常见状态、状态码含义、排查命令和僵尸进程处理思路

📋 目录

Linux 进程状态

核心定义 Linux 进程状态表示进程当前处于运行、睡眠、等待 IO、停止或僵尸等阶段。理解进程状态有助于排查 CPU 高、负载高、进程卡死和僵尸进程问题。

1. 常见进程状态

状态码名称含义
RRunning正在运行或在运行队列等待 CPU
SSleeping可中断睡眠,等待事件完成
DUninterruptible Sleep不可中断睡眠,通常等待磁盘或内核 IO
TStopped进程被暂停或跟踪
ZZombie僵尸进程,子进程退出但父进程未回收
IIdle内核空闲线程

2. 查看进程状态

ps -eo pid,ppid,stat,comm,args | head
ps aux
 top

查看指定进程:

ps -o pid,ppid,stat,comm,args -p <pid>
cat /proc/<pid>/status

3. D 状态排查

D 状态通常表示进程等待不可中断 IO,常见原因:

  1. 磁盘 IO 卡住。
  2. NFS 或远程存储无响应。
  3. 块设备故障。
  4. 内核态等待无法被信号中断。

排查命令:

iostat -x 1
pidstat -d 1
dmesg -T | tail -100

4. Z 僵尸进程排查

僵尸进程本身不占 CPU 和内存主体,但会占用 PID。大量僵尸进程通常说明父进程没有正确回收子进程。

ps -eo pid,ppid,stat,comm | awk '$3 ~ /Z/ {print}'

处理思路:

  1. 找到僵尸进程的父进程。
  2. 优先重启或修复父进程。
  3. 父进程退出后,僵尸进程通常会被 init/systemd 接管并回收。

5. 面试回答模板

标准回答 Linux 常见进程状态包括 R、S、D、T、Z。R 表示运行或等待 CPU,S 表示可中断睡眠,D 表示不可中断睡眠,通常和磁盘或内核 IO 等待有关,Z 表示僵尸进程。排查时可以用 ps、top、/proc/<pid>/status 查看状态;D 状态重点查 IO、存储和内核日志,Z 状态重点找父进程是否未回收子进程。


关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro