当前位置: 首页 > news >正文

Linux系统的进程管理

一、进程查看命令

 1、pstree

用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁 

用法:

pstree    [选项]

选项:

选项作用
-A:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-P同时列出每个进程的PID

2、ps

显示系统当前进程瞬间运行状态

用法:
ps   [选项]  

选项:

选项作用
-A显示现行终端机下的所有进程,包括其他用户的进程
-U以用户为主的进程状态

输出解析:

- `USER`:进程的所有者。
- `PID`:进程的 ID。
- `%CPU`:进程占用的 CPU 百分比。
- `%MEM`:进程占用的内存百分比。
- `VSZ`:进程使用的虚拟内存大小。
- `RSS`:进程使用的物理内存大小。
- `TTY`:进程所在的终端。
- `STAT`:进程的状态,如`S`(休眠)、`R`(运行)、`Z`(僵尸进程)等。
- `START`:进程的启动时间。
- `TIME`:进程运行的时间。
- `COMMAND`:启动进程的命令。

进程状态:

S:休眠

s:父进程

R:运行

Z:僵尸进程(前台程序已死,但后台驻留进程没有正常退出;后果就是占用资源不干活。)

在Linux中,使用 `ps aux` 命令可以查看当前运行的进程及其详细信息。输出的每一列代表不同的信息,其中 **STAT**(或 `S`)列表示进程的**状态(Process State)**,即进程的类型或当前行为。

ps aux输出的进程状态(STAT)详解

其中 STAT 列 的字母组合表示进程的状态,常见的状态组合有:

Ss:会话领导者(`s`),处于可中断睡眠(`S`),如 `bash` 终端进程。
Ssl:多线程(`l`)的会话领导者(`s`),如 `systemd`。
R+:前台运行(`+`)的进程(`R`),如 `top` 命令。
D:不可中断睡眠(`D`),常见于磁盘I/O密集型任务(如 `dd` 命令)。
Z:僵尸进程(`Z`),需要父进程回收资源。
I<:内核空闲线程(`I`),低优先级(`<`)。

 如何查看进程状态?

1、ps aux(显示所有进程)


ps   aux  |   grep   nginx

   输出示例:
root      1234  0.0  0.1  12345  6789 ?        S    May30   0:00 nginx: worker process

    S`表示 nginx 处于可中断睡眠(等待请求)。

2. ps -efj`(显示进程父子关系)
ps   -efj

   可查看 `PPID`(父进程ID)和 `STAT` 状态。

3. top / htop动态查看进程状态):
top

    在 top中,列同样表示进程状态。

ps -elf` 是 Linux 中查看进程信息的常用命令之一,它以长格式(`-l`)和完整格式(`-f`)显示所有进程(`-e`),并提供更详细的进程状态信息。以下是 `ps -elf` 的详细解析:

ps -elf` 命令详解

-e:显示所有进程(等同于 -A)。
-l:长格式输出,显示更多字段(如 F、S、PRI、NI)。
-f:完整格式输出,显示完整的命令行(CMD)和用户信息。

 关键字段详解

1. 进程状态(`S` 列)

与 `ps aux` 的 `STAT` 列相同,常见状态包括:

R:运行中(Running)。
S:可中断睡眠(Interruptible Sleep,等待事件)。
D:不可中断睡眠(Uninterruptible Sleep,通常与磁盘I/O相关)。
Z:僵尸进程(Zombie)。
T:已停止(Stopped,如被 `SIGSTOP` 暂停)。
I:空闲(Idle,内核线程)。

2. 优先级(`PRI` 和 `NI`)

PRI:进程的实际优先级(由内核动态调整,数值越小优先级越高)。
NI:Nice值(用户可调整的优先级修正值):
20:最高优先级(抢占更多CPU)。
19:最低优先级(CPU友好,适合后台任务)。

3. WCHAN 列

 显示进程当前等待的内核事件(如 `poll`、`futex`)。
若为 `-`,表示进程正在运行或无需等待。

常用组合命令

1. 查找特定进程

ps  -elf  |  grep  nginx

2. 查看进程树(父子关系)

ps  -elf  --forest

3. 按CPU或内存排序

ps  -elf  --sort=%cpu  # 按CPU降序
ps -elf --sort=-%mem  # 按内存降序

4. 查看僵尸进程

ps  -elf  |  grep  Z

3、pgrep

查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程

选项:

-l同时显示进程名和PID
-o当匹配多个同一命令启动的进程时,显示进程号最小的那个

注意:#pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程

http://www.dtcms.com/a/360579.html

相关文章:

  • vue3+vite+ts 发布npm 组件包
  • 查看所有装在c盘软件的方法
  • [知识点记录]SQLite 数据库和MySQL 数据库有什么区别?
  • DuckDB 内嵌分析:ABP 的「本地 OL盘快照」
  • 福彩双色球第2025100期号码推荐
  • 福彩双色球第2025100期数据统计
  • 吴恩达机器学习作业十一:异常检测
  • Docker 容器(二)
  • 机器视觉学习-day15-图像轮廓特征查找
  • Wi-Fi技术——OSI模型
  • 深度学习量化双雄:PTQ 与 QAT 的技术剖析与实战
  • 开源协作白板 – 轻量级多用户实时协作白板系统 – 支持多用户绘图、文字编辑、图片处理
  • globals() 小技巧
  • C++ 模板全览:从“非特化”到“全特化 / 偏特化”的完整原理与区别
  • Prometheus之启用--web.enable-remote-write-receiver
  • 基于muduo库的图床云共享存储项目(三)
  • 前端常见安全问题 + 防御方法 + 面试回答
  • 「数据获取」《中国工会统计年鉴》(1991-2013)(获取方式看绑定的资源)
  • 【人工智能99问】Qwen3简介(33/99)
  • 浅析NVMe协议:DIF
  • 多线程使用场景一(es数据批量导入)
  • 林曦词典|老死不相往来
  • 洛谷p2392kkksc03考前临时抱佛脚 详解(回溯,深度搜索法)
  • 大模型参数到底是什么?
  • CUDA与图形API的深度互操作:解锁GPU硬件接口的真正潜力
  • C++内存序不迷茫:从CPU缓存一致性理解Memory Order
  • 如何将剪贴板内容存为文件?Paste As File支持文本/图片转换
  • 批处理脚本操作 JSON 文件
  • centos7挂载iscis存储操作记录
  • Java学习笔记(前言:开发环境配置)