进程状态
100%

进程 · 第 9 课

进程状态

学习如何解读 `ps` 快照中常见的 Linux 进程状态码。

Linux 任务在运行、等待、停止和退出的过程中,会在不同执行状态之间转换。psSTAT 字段只记录某一瞬间,因此诊断行为时,反复观察通常比只看一个字母更有用。

$ ps -o pid,ppid,stat,wchan:24,cmd

STAT 的第一个字符表示主要状态,后续字符则是修饰符,用于描述会话首进程、前台进程组成员等属性。完整列表请查阅本机的 ps 手册。

运行与可中断睡眠

  • R 表示正在运行或可运行。任务正在 CPU 上执行,或正在运行队列中等待 CPU 时间。
  • S 表示可中断睡眠。任务正在等待某个事件,并可由适当的信号或事件唤醒。

睡眠是正常现象。交互式程序和服务的大部分时间都在等待输入、定时器、网络流量、锁或其他事件,而不是持续占用 CPU。

主要状态 R 表示什么?

哪个主要状态表示可中断睡眠?

不可中断睡眠

D 表示不可中断睡眠,常见于任务等待某项内核操作时,例如某些存储或网络文件系统 I/O。任务离开这种等待前不会响应普通信号;在此期间,信号可以保持待处理状态。

短暂处于 D 状态可能完全正常。长期或大量的 D 状态任务可能意味着 I/O 缓慢、不可用或发生故障,但仅凭这个状态无法确定原因。下结论前,应检查等待通道、内核日志、存储与网络健康状况以及相关子系统。

哪个主要状态表示不可中断睡眠?

停止与僵尸状态

  • T 通常表示进程被 SIGTSTP 等作业控制操作或 SIGSTOP 停止。某些工具用小写 t 表示由跟踪造成的停止。
  • Z 表示僵尸进程:进程已经退出,但父进程尚未收集其终止记录。

适当时,可用 SIGCONT 恢复因作业控制而停止的进程。僵尸进程已经不再执行,因此无法被恢复或杀死;必须由其父进程或接管它的回收进程收集状态。

主要状态 Z 表示什么?

结合上下文解读状态

状态码是观察结果,而不是诊断结论。应结合运行时长、CPU 使用率、等待通道、父子关系、日志和多次采样进行分析。从内核报告状态到你看到屏幕内容之间,任务可能已经切换状态。

管理和监控 Linux 进程实验提供了一个安全环境,可用于观察前台、睡眠、停止和已终止的任务。

课程已完成

你已完成 进程状态

现在,你可以解读最常见的主要进程状态。

  • R 理解为正在运行或可运行,将 S 理解为可中断睡眠。

  • 把持续的 D 状态作为等待症状调查,而不是直接当作诊断结论。

  • 区分已停止的 T 与已退出但未回收的 Z

  • 使用重复观察和周边证据进行判断。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 进程