news 2026/6/23 21:40:37

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/6/23 11:41:58

【睿擎派】云端一体,多种通信协议构建机械臂运动控制系统

说明&#xff1a;这是我2025 RT-Thread嵌入式大赛-软件赛道参赛作品&#xff08;一等奖&#xff09; 项目背景及功能 受国际形势复杂多变的影响&#xff0c;工业控制领域长期以来以国外产品及系统为主导的格局正在发生转变。当下国家大力倡导国产自主可控的发展方向&#xff0…

作者头像 李华
网站建设 2026/6/23 2:25:14

4.1用户空间RTOSAPI

4.1 用户空间RTOS API 4.1.1 用户空间RTOS API列表 本章对Xenomai 3编写&#xff0c;描述应用程序的构建与运行方式。文中"应用程序"特指基于Xenomai 3库的用户空间程序。 Xenomai 3通过将实时核心Cobalt与Linux内核并行运行&#xff0c;形成双内核架构。该实时扩…

作者头像 李华
网站建设 2026/6/23 17:41:57

11、嵌入式Linux开发:内核日志存储、追踪系统与设备树管理

嵌入式Linux开发:内核日志存储、追踪系统与设备树管理 1. 内核日志消息与崩溃信息存储到持久化存储 在Linux系统中,将内核日志消息、内核崩溃(panic)或错误(oops)信息存储到持久化存储是一种重要的调试手段。借助Linux内核的持久化存储支持(CONFIG_PSTORE),我们能够…

作者头像 李华
网站建设 2026/6/23 19:31:15

17、Yocto项目软件层与应用开发全解析

Yocto项目软件层与应用开发全解析 软件层规则与权限 在Linux系统中,SMACK(Smack Mandatory Access Control)规则存储于 /etc/smack/accesses 文件,其格式如下: <subject-label> <object-label> <accesses>这些规则可通过 smackload 实用工具加载…

作者头像 李华
网站建设 2026/6/23 19:31:02

宁波紧固件产业集群的外向型制造与装备升级路径

在全球制造业结构深度调整、产业链竞争不断向精细化与系统化演进的背景下&#xff0c;紧固件这一基础工业产品正在重新被审视其产业价值。从结构安全到装配效率&#xff0c;从长期可靠性到全生命周期管理&#xff0c;紧固件的技术水平与制造能力&#xff0c;已经成为衡量一个地…

作者头像 李华