Linux进程stat状态怎么看?linux进程状态详解

在 Linux 中,进程的 状态(State) 是一个非常重要的概念,它描述了进程当前所处的生命周期阶段,这些信息可以通过多种命令查看,最常用的是 pstop/proc/[pid]/stat 文件。

以下是 Linux 进程常见状态的详细解释:

136-linux进程创建-状态查询-僵尸-孤儿-D状态进程详解
加载中
136-linux进程创建-状态查询-僵尸-孤儿-D状态进程详解

常见进程状态符号

ps 命令的输出中,STAT 列或 /proc/[pid]/stat 文件中的第 3 个字段表示进程状态。

核心状态(单字符)

状态符号 全称 含义
R Running 运行中,进程正在 CPU 上运行,或者在运行队列中等待被调度。
S Sleeping 可中断睡眠,进程正在等待某个事件发生(如 I/O 完成、信号、锁等),收到信号后可被唤醒,这是最常见的状态。
D Uninterruptible Sleep 不可中断睡眠,进程正在等待 I/O 操作(通常是磁盘 I/O),此时进程不能被信号中断,即使发送 kill -9 也无法终止,直到 I/O 完成。
T Stopped 已停止,进程被暂停,通常是因为收到了 SIGSTOPSIGTSTP 信号,或者被调试器(如 gdb)跟踪。
Z

Linux进程stat状态怎么看?linux进程状态详解

Zombie

僵尸进程,进程已经终止,但其父进程尚未读取其退出状态(wait()),僵尸进程不占用 CPU 或内存资源,但占用进程号(PID)。
XDead死亡,进程已彻底终止,即将从系统中移除,通常只在极短时间内出现,几乎看不到。

扩展状态(STAT 列中的额外标志)

ps 命令的 STAT 列中,除了第一个字符表示核心状态外,后续字符表示进程的附加状态:

Linux进程stat状态怎么看?linux进程状态详解

标志 含义
< 高优先级(High priority)。
N 低优先级(Low priority)。
s 会话领导者(Session leader),该进程是其会话的第一个进程。
l 多线程(Multi-threaded),该进程是多线程的(使用 clone 系统调用)。
前台进程组(Foreground process group),该进程在前台运行,可以接收终端输入。
I 空闲内核线程(Idle kernel thread),仅在内核线程中出现。
k 内核线程(Kernel thread)。
W 换页(Paging),进程正在换页,通常出现在早期 Linux 内核中。

如何查看进程状态

使用 ps 命令

# 查看所有进程的详细状态
ps aux
# 查看特定 PID 的状态
ps -p <PID> -o pid,stat,comm

示例输出:

  PID STAT COMMAND
 1234 Ss   /sbin/init
 5678 R+   ps aux
 9012 D    java -jar app.jar
  • Ss:可中断睡眠,会话领导者。
  • R+:运行中,前台进程组。
  • D:不可中断睡眠。

使用 top 命令

top 界面中,S 列显示进程状态:

  • R:运行
  • S:睡眠
  • D:不可中断睡眠
  • T:停止
  • Z:僵尸

读取 /proc/[pid]/stat 文件

这是最底层的方式,适用于脚本或程序解析。

cat /proc/<PID>/stat

输出示例:

1234 (bash) S 1233 1234 1234 0 -1 4194304 100 0 0 0 10 5 0 0 20 0 1 0 1234 1234567890 ...
  • 第 1 字段:PID
  • 第 2 字段:进程名(括号内)
  • 第 3 字段:状态(这里是 S

特殊状态详解

🟢 R(Running)

  • 进程正在 CPU 上执行,或正在等待 CPU 调度。
  • 如果很多进程处于 R 状态,可能表示 CPU 负载高。

🔵 S(Sleeping)

  • 大多数用户空间进程处于此状态。
  • 进程在等待事件(如网络数据到达、文件读取完成)。
  • 可被信号中断。

🟠 D(Uninterruptible Sleep)

  • 关键问题:如果大量进程处于 D 状态,通常意味着

    Linux进程stat状态怎么看?linux进程状态详解

    磁盘 I/O 瓶颈存储设备故障

  • kill -9 无效,因为进程在内核态等待 I/O,无法响应信号。
  • 解决方案:检查磁盘健康、I/O 负载,或等待 I/O 完成。

⚫ Z(Zombie)

  • 进程已退出,但父进程未调用 wait() 收集退出状态。
  • 危害:占用 PID 资源,可能导致系统无法创建新进程。
  • 解决方案
    1. 通知父进程处理:kill -SIGCHLD <PPID>
    2. 杀死父进程:kill -9 <PPID>(子进程会被 init 进程收养并清理)

🔴 T(Stopped)

  • 进程被暂停,通常用于调试或后台作业控制。
  • 可通过 kill -CONT <PID> 恢复运行。

常见问题排查

问题:如何查看某个进程的完整状态信息?

# 查看 PID 为 1234 的进程状态cat /proc/1234/status

输出示例:

Name:   bash
State:  S (sleeping)
Tgid:   1234
Pid:    1234
PPid:   1
TracerPid:  0
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000
FDSize: 64
Groups: 27 30 46 100
VmPeak:   12345 kB
VmSize:   12345 kB
VmRSS:     1234 kB
Threads:  1

问题:如何找出僵尸进程?

ps -eo pid,ppid,stat,comm | grep -w Z

问题:如何找出处于 D 状态的进程?

ps -eo pid,ppid,stat,comm | grep -w D

  • R:正在运行或等待 CPU。
  • S:等待事件(最常见)。
  • D:等待 I/O(需关注磁盘健康)。
  • T:被暂停。
  • Z:僵尸进程(需清理父进程)。

理解进程状态有助于诊断系统性能问题,如 CPU 瓶颈、I/O 瓶颈或资源泄漏。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/477824.html

(0)
Excel不响应怎么办?Excel卡死无响应的解决方法
上一篇 2026年7月10日 03:12
如何测试cdn,如何检测CDN是否生效
下一篇 2026年7月10日 03:14

相关推荐

  • 自己做一个gpu服务器多少钱,性价比高吗?

    自己组装一台用于深度学习或渲染的GPU服务器,成本通常在1.5万元到8万元之间,具体取决于GPU型号、散热方案和整机可靠性要求, 如果只求入门跑模型,用消费级显卡搭配二手平台配件,1.5万元就能起步;若追求企业级稳定性和高并发训练,配备NVIDIA A系列专业卡和冗余电源,预算会轻松突破8万元,下面我按真实组装……

    2026年8月18日
    500
  • linux pthreads怎么安装?linux pthreads安装教程

    在 Linux 系统中,pthreads(POSIX Threads)通常不需要单独安装,因为它已经是大多数 Linux 发行版标准 C 库(glibc)的一部分,如果你在使用 pthreads 时遇到编译错误或找不到头文件,可能需要安装相关的开发包,以下是针对不同发行版的具体操作指南:常见发行版安装命令Ubu……

    2026年7月12日
    16900
  • 阿里巴巴服务器4核8g能带多少

    4核8G的阿里云服务器,在典型配置下,完全能够支撑日均数万PV的网站或应用,并发请求处理能力在数百级别,具体取决于业务逻辑和优化程度,对于大多数中小规模项目,这个配置是性价比很高的起点,从CPU看,4核能处理多线程任务,8G内存足以缓存常见数据,配合SSD硬盘和合理带宽,跑WordPress、电商后台、API接……

    2026年8月13日
    700
  • x86服务器1颗cpu有多少核

    x86服务器1颗CPU的核心数没有固定值,目前主流型号从8核到128核不等,具体取决于处理器代际和系列,例如Intel Xeon Platinum 8480+拥有56核,AMD EPYC 9654拥有96核,核心数真相:物理核心与逻辑线程的拆解很多人以为CPU核心数就是任务管理器里看到的“框框”数量,其实得区分……

    2026年8月21日
    400
  • linux crontab sh怎么用?linux定时任务执行shell脚本报错怎么办

    Linux crontab 配合 shell 脚本是自动化运维的核心手段,通过精确的时间调度与脚本逻辑结合,可实现无需人工干预的数据备份、日志清理及任务监控,在服务器管理的日常工作中,手动执行重复性任务不仅效率低下,还容易因人为疏忽导致数据丢失或服务中断,将复杂的业务逻辑封装在 Shell 脚本中,并利用 cr……

    2026年7月9日
    11600
  • linux日志怎么过滤?linux日志过滤命令大全

    Linux日志过滤的核心在于结合grep、awk、sed等文本处理工具,针对特定日志格式(如syslog、Nginx访问日志)进行实时或离线的高效筛选与清洗,从而快速定位故障根源或安全威胁,在服务器运维的日常场景中,日志就像系统的“黑匣子”,记录了每一次请求、每一个错误和每一处异常,面对动辄GB甚至TB级别的日……

    2026年7月12日
    11800
  • linux bh是什么意思,有哪些常见用途和操作方法?

    Linux BH并非某一特定Linux发行版,而是指Linux系统下Bash Shell环境及基础操作能力的统称,掌握它是高效使用Linux的第一道门槛,什么是Linux BH?——重新认识这个基础概念许多刚接触Linux的用户会听到“Linux BH”这个说法,但它并非一个官方术语,在技术社区中,BH通常被理……

    2026年7月21日
    600
  • E5服务器128g虚拟机开多少g?,虚拟机内存分配多少合适?

    对于E5服务器128GB内存,虚拟机分配建议根据应用类型在1GB到32GB之间,总数控制在20-40个较为合理,具体需结合超分比和实际负载,优先保证核心业务内存不过度竞争,理解内存分配的核心参数物理内存 vs 虚拟内存虚拟化技术允许将物理内存(128G)通过超分(Overcommitment)分配给多个虚拟机……

    2026年7月27日
    700
  • linux mo怎么安装配置?,有哪些注意事项

    linux mo通常是指Linux Mint,一个基于Ubuntu的桌面操作系统,它以Cinnamon桌面环境为核心,在易用性和稳定性之间取得了绝佳平衡,是目前新手从Windows迁移到Linux的最友好选择之一,linux mint 适合新手吗?深入解析它的设计哲学很多刚接触Linux的朋友会问,到底哪个发行……

    2026年7月16日
    1700
  • 一台服务器能建立多少tcp链接

    一台服务器能建立的TCP连接数量,理论上限约为65535个(受端口数约束),但在实际生产环境中,通过优化系统参数,百万级并发连接完全可行,咱们今天不聊枯燥的理论,就掰开揉碎说说这背后的门道,你能搜到这个话题,说明你多半是在折腾高并发架构,或者正被什么”连接数上不去”的怪问题折磨,别急,咱从最底层往上捋,TCP连……

    2026年8月17日
    600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注