news 2026/5/8 2:32:22

Linux进程状态详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux进程状态详解

在Linux系统中,进程的状态反映了其当前的生命周期和活动情况。以下是Linux进程的主要状态及其含义:
1. 基本进程状态(man ps中显示)
Linux进程通常表现为以下5种基本状态(可通过ps或top命令查看):
1.R (Running / Runnable)

  • 进程正在运行或就绪(等待CPU调度)。
  • 注意:即使进程实际未占用CPU(在就绪队列中),也显示为R。

2.S (Interruptible Sleep)

  • 进程在等待某个事件(如I/O完成、信号量等)。
  • 可以被信号或事件中断唤醒。

3.D (Uninterruptible Sleep)

  • 进程在等待不可中断的I/O(如磁盘写入)。
  • 无法被信号唤醒(即使kill -9也无效),通常与硬件相关,可能导致进程僵死。

4.T (Stopped)

  • 进程被信号暂停(如SIGSTOP、SIGTSTP),或正在被调试器跟踪。
  • 可通过SIGCONT信号恢复运行。


5.Z (Zombie)

  • 进程已终止,但其退出状态未被父进程回收(通过wait()系统调用)。
  • 僵尸进程不占用资源,但会保留进程ID(PID)。若大量存在可能导致PID耗尽。


2. 内核中的扩展状态
Linux内核实际定义了更细化的状态(见/proc/<pid>/status或内核源码):

  • I (Idle):

    内核线程的空闲状态(某些版本中标记为S)。

  • X (Dead):

    进程已完全终止,不会被调度。

  • K (Wakekill):

    进程在可中断睡眠中,但只能被致命信号唤醒。

  • W (Waking):

    进程正在被唤醒(过渡状态)。

  • P (Parked):

    内核线程被主动暂停(特定内核版本引入)。

3. 状态转换场景

  • 创建 → R:fork()或exec()后进程进入就绪队列。
  • R → S/D:进程发起I/O请求或等待资源。
  • S/D → R:资源可用后重新就绪。
  • R → T:收到SIGSTOP或调试中断。
  • T → R:收到SIGCONT。
  • R → Z:进程终止后父进程未wait()。

4. 查看进程状态

  • 命令行工具
ps aux # STAT列显示状态(如`R`、`S+`)top # 动态查看(`S`列)cat /proc/<pid>/status # 详细状态(State字段)

状态可能附带额外标志(如S+中的+表示前台进程组)。

  • 内核日志:dmesg可能记录D状态进程的阻塞信息。

5. 常见问题

  • D状态进程:通常因硬件故障或驱动问题,需检查日志或重启硬件。

  • 僵尸进程:若父进程未正确处理子进程退出,需手动终止父进程(或重启)。

  • 高负载下的R状态:可能是CPU竞争,需优化或扩展资源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 23:34:27

动态HTTP服务器实战:解析请求与Mock数据

上一节课里&#xff0c;我们实现了一个简单的动态 HTTP 服务&#xff0c;它采用拦截器模式。接下来几节课&#xff0c;我们将逐步实现动态 HTTP 服务器的其他功能&#xff0c;让它成为能够真正处理业务逻辑的 HTTP 服务器。通常情况下&#xff0c;HTTP 服务器处理业务逻辑的标准…

作者头像 李华
网站建设 2026/5/5 11:47:11

WordPress更新警示:Elementor用户请暂缓升级至最新版本

保持网站系统更新似乎是每个WordPress管理员的首要任务。然而&#xff0c;近期不少使用Elementor页面编辑器的WordPress网站管理员发现&#xff0c;盲目升级到WordPress最新版本可能带来灾难性后果。本文将深入探讨这一现象&#xff0c;分析问题根源&#xff0c;并为Elementor用…

作者头像 李华
网站建设 2026/4/29 3:26:12

分享泰迪案例库 | 销售行业项目案例合集

行业案例分享销售大数据挖掘销售大数据开发销售人工智能销售AIGC销售商务&#xff08;Python&#xff09;销售数学建模实战案例示例学生校园消费行为分析关键技术&#xff1a;缺失值处理异常值处理数据合并KMeans聚类

作者头像 李华
网站建设 2026/5/7 13:31:36

node-red

node-red 安装 1、安装nodejs和npm 1.1 更新本地包 先更新本地包&#xff0c;以免系统包错误 sudo apt update 1.2 安装nodejs和npm 安装nodejs sudo apt update 安装npm sudo apt-get install npm 安装完成后查看nodejs和npm版本&#xff1a; Node-RED需要Node.js 12.x 或…

作者头像 李华
网站建设 2026/5/6 2:41:52

JavaScript基础概念详解

JavaScript&#xff08;简称JS&#xff09;是一门动态、弱类型的脚本语言&#xff0c;主要运行在浏览器端&#xff0c;用于实现网页的交互效果。随着Node.js的出现&#xff0c;它也能运行在服务器端&#xff0c;成为一门“全栈语言”。要掌握JavaScript&#xff0c;首先需要理解…

作者头像 李华
网站建设 2026/5/4 10:40:45

AI 智能体(AI Agent)开发公司

寻找一家优秀的 AI 智能体&#xff08;AI Agent&#xff09;开发公司&#xff0c;需要跳出传统的软件外包思维&#xff0c;聚焦于其在 AI 模型整合、复杂决策链设计、多模态处理以及 行业定制化 方面的能力。AI 智能体是高度依赖数据、算法和工程化集成的复杂系统。以下是评估和…

作者头像 李华