9. 进程状态

当您检查正在运行的进程时,例如使用 ps aux 命令,您会注意到一个 STAT 列。理解此列中的代码是掌握进程管理的关键。每个代码代表一个特定的Linux 进程状态

ps aux

Linux 中的进程状态提供了进程当前活动情况的快照。它是在积极使用 CPU、等待输入,还是已经终止?让我们探索您将遇到的最常见状态。

解码常见进程状态代码

STAT 列揭示了当前的Linux 进程状态。虽然有许多可能的​​状态,但以下是您最常看到的。对这些Linux 进程状态进行解释将帮助您诊断系统行为。

  • R (运行或可运行):处于此状态的进程要么正在 CPU 核心上积极执行,要么在运行队列中,一旦有 CPU 核心可用即可执行。

  • S (可中断睡眠):这是最常见的 Linux 进程状态之一。进程正在等待某个事件完成,例如来自终端的用户输入或网络数据包的到达。它是“可中断的”,意味着它可以被信号唤醒。

  • D (不可中断睡眠):此进程也在睡眠,但它处于无法被信号中断的状态。这通常用于 I/O 操作期间的短时间,此时中断进程可能导致状态损坏。如果进程长时间保持在此状态,可能表明硬件或驱动程序存在问题。

  • Z (僵尸进程):僵尸进程已完成执行,但在进程表中仍有一个条目。它正在等待其父进程读取其退出状态。少量僵尸进程是正常的,但大量僵尸进程可能表明父应用程序存在错误。

  • T (停止):当进程被作业控制信号(如按下 Ctrl+Z)挂起或被调试器跟踪时,它进入此状态。可以使用 SIGCONT 信号恢复它。

通过理解这些基本的Linux 进程状态,您可以更深入地了解系统的活动,并更有效地管理正在运行的应用程序。

登录以保存您的学习进度

登录

练习

运用您的知识进行实践操作。以下实验将帮助您巩固对 Linux 进程管理和状态的理解:

  1. 管理和监控 Linux 进程 - 在此实验中,您将学习管理和监控 Linux 系统上进程的基本技能。您将探索如何与前台和后台进程交互,使用 ps 检查它们,使用 top 监控资源,使用 renice 调整优先级,以及使用 kill 终止它们。

此实验将帮助您在实际场景中应用进程状态的概念,并建立对 Linux 进程管理的信心。

测验

用于表示不可中断睡眠的 STAT 代码是什么?(请提供单个大写英文字母作为状态代码。)