广州总部电话:020-85564311
广州总部电话:020-85564311

广州网站建设-小程序商城开发-广州小程序开发-企业微信开发公司-网站建设高端品牌-优网科技

20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

Linux进程管理完全指南:从ps到htop,掌握关键命令
发布日期:2025-04-22 22:14:57 浏览次数: 837 来源:马哥Linux运维


Linux系统进程管理

概念
  • 进程监控指令之ps
    • 语法
    • ps -aux解析
  • 进程状态
    • 常用进程基础状态
    • 常用组合进程状态
    • 僵尸状态的进程
    • 孤儿进程
  • 进程监控指令之top、htop、iotop
    • top
    • htop
    • iotop

概念

在 Linux 系统中,进程是正在运行的程序的实例。理解进程的管理、查看和控制对于系统管理员和开发者来说非常重要

进程的定义:

  • • 进程(Process)是程序在执行时的一个实例。它包含了程序的代码、数据、堆栈、环境变量等。
  • • 每个进程都有一个唯一的 进程 ID(PID),用于标识进程。
  • • 进程可以处于不同的状态,如运行态、就绪态、等待态、僵尸态等。

进程监控指令之ps

ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的.

语法

|     |     |
| --- | --- |
|     | ps [选项] |

常用选项说明

  • • -a:显示所有用户的进程(不包括会话领导者和没有控制终端的进程)。
  • • -u:显示进程的用户信息。
  • • -x:显示没有控制终端的进程。
  • • -e:显示所有进程。
  • • -f:显示长格式信息,包括父进程 ID、控制终端等。
  • • -l:显示长格式信息,类似于 -f,但更详细。
  • • -o:自定义输出格式,指定要显示的字段。
  • • -p:指定要显示的进程 ID。
  • • -t:指定要显示的终端。
  • • -U:指定要显示的用户。
  • • -G:指定要显示的用户组。

常用搭配

|     |     |
--- | --- |
|     | ps -ef |
|     | ps -aux |
|     | ps -le |

ps -aux解析

|     |     |
| --- | --- |
|     | root@master-01:~# ps -aux \| head -10 |
|     | USER         PID %CPU%MEM    VSZ   RSS TTY      STAT START   TIME COMMAND |
|     | root           10.40.017085611472 ?        Ss   Feb17 350:48 /sbin/init nopti |
|     | root           20.00.0      0     0 ?        S    Feb17   0:13 [kthreadd] |
|     | root           30.00.0      0     0 ?        I<   Feb17   0:00 [rcu_gp] |
|     | root           40.00.0      0     0 ?        I<   Feb17   0:00 [rcu_par_gp] |
|     | root           60.00.0      0     0 ?        I<   Feb17   0:00 [kworker/0:0H-kblockd] |
|     | root           80.00.0      0     0 ?        I<   Feb17   0:00 [mm_percpu_wq] |
|     | root           90.00.0      0     0 ?        S    Feb17   2:29 [ksoftirqd/0] |
|     | root          100.00.0      0     0 ?        I    Feb17  53:47 [rcu_sched] |
|     | root          110.00.0      0     0 ?        S    Feb17   0:08 [migration/0] |
|     |     |
|     | #解析 |
|     | USER:表示用户 |
|     | PID:表示进程号 |
|     | %CPU:表示cpu占用率 |
|     | %MEM:表示内存占用率 |
|     | VSZ:进程占用的虚拟内存,单位kb |
|     | RSS:进程占用的常驻内存,单位kb |
|     | TTY:?表示进程没有控制终端 |
|     | STAT:进程状态 |
|     | START:进程启动时间 |
|     | TIME:进程累计运行了多长时间 |
|     | COMMAND:进程运行的命令 |

进程状态

常用进程基础状态

  • • 运行态(Running):状态字符R。进程正在CPU上运行,或者在运行队列中等待运行
  • • 睡眠态(Sleeping):状态字符S。进程正在等待某些事件(如 I/O 操作、信号等)完成。进程处于睡眠态时,不会占用 CPU 时间。
  • • 不可中断睡眠态(Disk Sleep):状态字符D。进程正在等待某些不可中断的 I/O 操作完成,通常与磁盘 I/O 操作有关。处于这种状态的进程不能被信号唤醒,也不能被 kill 命令终止。
  • • 停止态(Stopped):状态字符T。进程被信号停止,通常是因为收到了 SIGSTOP 或 SIGTSTP 信号。停止的进程不会占用 CPU 时间,但可以被信号唤醒。
  • • 僵尸进程(Zombie):状态字符Z。进程已经完成,但其父进程尚未读取其状态信息。僵尸进程不能被终止,只能等待父进程读取状态信息后自动消失。僵尸进程会占用系统资源,直到父进程读取其状态信息。
  • • 死态(Dead):状态字符X。进程已经死亡,但尚未被父进程回收。这种状态的进程通常不会出现在 ps 的输出中。

常用组合进程状态

  • • R+、S+、D+:带+号的进程,表示进程前台运行
  • • Ss、xxxs:带小s的进程,进程是父进程
  • • R<、S<:带小于号<的进程,进程是高优先级进程,优先被cpu调度
  • • RN、SN:带N的进程,进程是低优先级进程
  • • Sl:带l的线程,进程是多线程状态

僵尸状态的进程

这里着重讲一下僵尸状态的进程,僵尸状态的进程因为一些原因脱离系统控制,但是进程又没有正常退出(结束),进程运行中但是不受控制,占用系统的cpu、内存资源。

僵尸状态排查及结束流程

  1. 1. 使用ps命令查找僵尸进程
|     |     |
| --- | --- |
|     | ps -ef \| grep 'Z' |
|     | # 或者使用更详细的命令来定位僵尸进程及其父进程,在输出中,STAT 列为 Z 的进程即为僵尸进程 |
|     | ps -A -ostat,ppid,pid,cmd \| grep -e '^\[Zz\]' |
  1. 2. 定位僵尸进程的父进程
|     |     |
--- | --- |
|     | # 下面命令输出的是僵尸进程的父进程PID |
|     | ps -o ppid= -p <僵尸进程PID> |
  1. 3. 终止父进程
|     |     |
| --- | --- |
|     | # 父进程终止后,僵尸进程会被 init 进程(PID 1)接管并自动清理 |
|     | kill -9 父进程pid |

孤儿进程

对系统影响不大。
某个子进程的父进程因为特殊原因挂了,但是子进程还在,子进程就是孤儿进程。

进程监控指令之tophtopiotop

top

top命令可以动态的持续监听进程的运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化的定制自己的输出,进而更清楚的了解进程的运行状态

语法

|     |     |
| --- | --- |
|     | top [选项] |

常用选项说明

  • • -d:指定top命令每隔几秒更新,默认是3秒
  • • -b:使用批处理模式,一般和-n选项结合使用,用于把top命令重定向到文件中
  • • -p:仅查看指定ID的进程
  • • -u:只监听某个用户的进程

示例:

|     |     |
|---|---|
|     |root@master-01:~#top|
|     |top-17:01:55up60days,6:30,1user,load average:2.55,1.74,1.88|
|     |Tasks:473total,   1running,472sleeping,   0stopped,   0zombie|
|     |%Cpu(s):0.2us,0.4sy,0.0ni,99.4id,0.0wa,0.0hi,0.0si,0.0st|
|     |MiB Mem :64050.7total,29284.5free,   6963.5 used,27802.7buff/cache|
|     |MiB Swap:      0.0total,      0.0free,      0.0used.55773.2availMem|
|     |     |
|     |PIDUSER      PRNI    VIRT    RES    SHRS%CPU%MEM     TIME+COMMAND|
|     |1280024root      20   0    9440   4136   3056 R   6.2   0.0   0:00.01top|
|     |1root      20   017085611472   6800 S   0.0   0.0350:51.46systemd|
|     |2root      20   0       0      0      0S   0.0   0.0   0:13.76kthreadd|
|     |3root       0-20       0      0      0I   0.0   0.0   0:00.00rcu_gp|
|     |4root       0-20       0      0      0I   0.0   0.0   0:00.01rcu_par_gp|
|     |6root       0-20       0      0      0I   0.0   0.0   0:00.00kworker/0:0H-kblockd|
|     |8root       0-20       0      0      0I   0.0   0.0   0:00.00mm_percpu_wq|
|     |9root      20   0       0      0      0S   0.0   0.0   2:29.50ksoftirqd/0|
|     |10root      20   0       0      0      0I   0.0   0.053:48.12rcu_sched |
说明图:
image
image

htop

htop 是一个交互式的进程查看器,类似于 top,但提供了更丰富的功能和更友好的用户界面。它支持颜色显示、树状结构、进程排序等功能,还可以直接在界面中操作进程(如杀死进程)。

安装

|     |     |
|
 --- | --- |
|     | 在大多数 Linux 发行版中,htop 可以通过包管理器安装: |
|
     | bash |
|     | 复制  |
|
     | # Ubuntu/Debian |
|     | sudo apt-get install htop |
|
     |     |
|     | # CentOS/RHEL |
|     | sudo yum install htop |
|
     |     |
|     | # Fedora |
|     | sudo dnf install htop |
运行htop后,你会看到类似以下的界面:
image
image

常用快捷键

  • • F1:帮助
  • • F2:设置
  • • F3:搜索进程
  • • F4:过滤进程
  • • F5:树状视图
  • • F6:排序字段
  • • F9:杀死进程
  • • F10:退出

iotop

iotop是一个用于监控磁盘 I/O 活动的工具,可以帮助你了解哪些进程正在占用磁盘 I/O 资源。它提供了实时的 I/O 使用情况,包括读写速度、进程信息等。

安装

|     |     |
|
 --- | --- |
|     | # Ubuntu/Debian |
|     | sudo apt-get install iotop |
|
     |     |
|     | # CentOS/RHEL |
|     | sudo yum install iotop |
|
     |     |
|     | # Fedora |
|     | sudo dnf install iotop |
运行iotop后,你会看到类似以下的界面:
image
image


链接:https://www.cnblogs.com/huangSir-devops/p/18834292

(版权归原作者所有,侵删)

文末福利


就目前来说,传统运维冲击年薪30W+的转型方向就是SRE&DevOps岗位。
为了帮助大家早日摆脱繁琐的基层运维工作,给大家整理了一套高级运维工程师必备技能资料包,内容有多详实丰富看下图!
共有 20 个模块
图片

1.38张最全工程师技能图谱
图片

2.面试大礼包
图片

3.Linux书籍
图片

4.go书籍
图片


······



6.自动化运维工具
图片

18.消息队列合集
图片
图片


 以上所有资料获取请扫码


备注:最新运维资料
图片

100%免费领取

(后台不再回复,扫码一键领取


优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
联系专属顾问
联系专属顾问
联系专属顾问
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询

和我们在线交谈!