Linux进程状态实战指南:转换关系、监控命令与状态解析

前言

理解Linux进程状态的核心不仅在于知道RSZ等符号的含义,更在于掌握状态如何转换 以及如何实时观测这些状态。无论是调试程序、分析系统负载,还是解决僵尸进程问题,这些技能都至关重要。

目录

一、状态转换关系图

二、查看进程状态的命令

1、ps命令

2、/proc文件系统

3、top/htop命令

三、状态标志后缀


一、状态转换关系图

重点:

进程的当前状态会被保存到其进程控制块(PCB)中。在Linux操作系统中,这些状态信息具体存储在task_struct结构体中。


二、查看进程状态的命令

1、ps命令

在Linux操作系统当中我们可以通过 ps aux 或 ps axj 命令查看进程的状态​​​​:

  • a:显示所有终端进程(包括其他用户的进程)
  • x:显示无控制终端的进程(如后台守护进程)
  • j:显示进程相关信息(进程组ID、会话ID、父进程ID及作业控制信息)
  • u:以用户为中心显示详细信息(包括用户、CPU和内存使用情况等)
bash 复制代码
ps -eo pid,state,cmd  # 查看所有进程状态

状态字段为第二列(STAT),可能包含附加标志(如Ss+)。

bash 复制代码
ps aux | grep <process>  # 常用命令(状态列在第8列)

2、/proc文件系统

bash 复制代码
cat /proc/<PID>/status  # 查看详细状态(包含State字段)

3、top/htop命令

  • top实时显示进程状态(S列):

  • htop 通常不预装在系统中,需要手动安装。根据你的 Linux 发行版,选择对应发行版本命令安装:

  • htop彩色显示,更直观:


三、状态标志后缀

ps输出中,状态标志后缀可能附带额外符号:

符号 含义
< 高优先级进程
N 低优先级进程
+ 前台进程组
s 会话领导者(如shell)
l 多线程进程

示例:Ss+表示会话领导者、可中断睡眠的前台进程。

相关推荐
Gene_202223 分钟前
[TOOL] ubuntu 使用 ffmpeg 操作 gif、mp4
linux·ubuntu·ffmpeg
Fanmeang26 分钟前
OSPF与BGP的联动特性实验案例
运维·网络·华为·ospf·bgp·路由黑洞·ospf联动bgp
哈哈浩丶1 小时前
Linux驱动开发2:字符设备驱动
linux·运维·驱动开发
啊森要自信1 小时前
【Linux 学习指南】网络基础概念(一):从协议到分层,看透计算机通信的底层逻辑
linux·运维·服务器·网络·网络协议·tcp/ip·ip
asdfg12589631 小时前
策略路由Policy-Based Routing(PBR)
linux·网络·wireshark·网络工程·策略路由
铃木隼.1 小时前
docker容器高级管理-dockerfile创建镜像
运维·docker·容器
小坏坏的大世界1 小时前
ROS2中的QoS(Quality of Service)详解
linux·机器人
Ronin3052 小时前
【Linux系统】进程状态 | 进程优先级
linux·运维·服务器·ubuntu
易知嵌入式小菜鸡2 小时前
CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用
linux·运维·服务器
彬彬醤2 小时前
ChatGPT无法登陆?分步排查指南与解决方案
服务器·网络·数据库·网络协议·chatgpt