Linux基础命令-ps查看进程状态

  • Post author:
  • Post category:linux



Linux基础命令-sort内容排序


Linux基础命令-chattr更改文件隐藏属性


文章目录


前言


一 命令的介绍


二 语法及参数


2.1 通过help和man查看命令的语法


2.2 命令参数


2.3 常用参数


三 参数使用与内容含义


3.1 查看系统当中所有的数据


3.1.1 ps aux中状态栏的含义


3.1.2 STAT进程状态各自代表的含义


3.1.3 STAT状态后的内容含义


3.2 以更详细的格式显示进程


3.2.1 ps lA中状态栏的含义


3.3 显示进程的变量和完整的格式


3.3.1 ps -ef中状态栏的含义


总结

前言

在linux中,有时需要会看进程的状态,知道哪些进程占用了多少的CPU、内存,以及当前系统的状态怎么样等等,下面来看下这个命令的一些参数。

一 命令的介绍

ps命令来自于英文词组“process status”,其功能使用与显示当前系统的进程状态。使用ps这个命令可以查看到进程的所有信息,例如说是进程的PID号、发起用户、系统资源使用占比(CPU,内存)、运行状态等。帮助我们可以及时发现哪些进程出现“僵死”或“不可中断”等异常情况。

二 语法及参数

2.1 通过help和man查看命令的语法

ps命令可以直接加参数进行查看进程;

语法:ps 【参数】

SYNOPSIS
       ps [options]

2.2 命令参数

ps命令的所有参数,可以看到这个命令的参数是有很多的,基本上这个命令只有几个是常用的。

a 显示当前终端下的所有进程,包括其他用户的进程
-A 所有进程都显示出来
c 显示每个进程真正的指令名称,而不包含路径
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业管理员的程序
e 显示进程及环境变量
-f 显示UID,PPID,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
g 显示现行终端机下的所有程序,包括所属组的程序
-G <群组识别码> 列出属于该群组的程序的状况
h 不显示标题列
-H 显示树状结构,表示程序间的相互关系
-j 采用工作控制的格式显示程序状况
-l 采用详细的格式来显示程序状况
L 列出栏位的相关信息
-m 显示所有的执行绪
n 以数字来表示USER和WCHAN栏位
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码> 指定程序识别码,并列出该程序的状况
r 只列出现行终端机正在执行中的程序
-s <阶段作业> 列出隶属该阶段作业的程序的状况
s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t <终端机编号> 列出属于该终端机的程序的状况
-T 显示现行终端机下的所有程序
u 以用户为主的格式来显示程序状况
-U <用户识别码> 列出属于该用户的程序的状况
U <用户名称> 列出属于该用户的程序的状况
v 采用虚拟内存的格式显示进程状况
-V或V 显示版本信息
-w或w 采用宽阔的格式来显示进程状况
x 显示所有进程,不以终端来区分
X 采用旧式的Linux i386登陆格式显示程序状况
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
–cols <每列字符数> 设置每列的最大字符数
–headers 重复显示标题列
–help 在线帮助
–info 显示排错信息
–lines <显示列数> 设置显示画面的列数

2.3 常用参数

a 显示当前终端下的所有进程,包括其他用户的进程
-A 所有进程都显示出来
u 以用户为主的格式来显示程序状况
f 用ASCII字符显示树状结构,表达程序间的相互关系
x 显示所有进程,不以终端来区分
e 显示进程及环境变量
-l 采用详细的格式来显示程序状况

三 参数使用与内容含义

3.1 查看系统当中所有的数据

ps显示所有进程,用wc显示行数,可以看到一共有这么多行,当然也可以加上个more,就可以慢慢看

[root@localhost ~]# ps aux | wc -l
214

[root@localhost ~]# ps aux |more
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 193912  7008 ?        Ss   15:16   0:02 /usr/lib/systemd/systemd --switched-r
oot --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    15:16   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   15:16   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    15:16   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    15:16   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    15:16   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    15:16   0:00 [rcu_sched]
......

3.1.1 ps aux中状态栏的含义

状态栏内容 含义
USER 进程的用户发起者
PID 进程的PID值,每个进程都有属于自己PID
%CPU 进程占用CPU的百分比
%MEM 进程占用内存的百分比
VSZ 虚拟内存,进程占用虚拟内存大小(单位:KB)
RSS 常驻内存,也就是物理内存,进程占用了物理内存大小(单位:KB)
TTY 在哪个终端上面运行,?表示与终端没有关系,显示tty1则是在本地上启动的进程
STAT 进程的状态,有5个状态
START 该process被触发启动的时间
TIME 该process实际使用CPU运行的时间
COMMAND 该程序的实际指令

3.1.2 STAT进程状态各自代表的含义

  • R:runing,表示当前正在运行的进程
  • S:sleep,当前正在睡眠的进程
  • T:stopped,当前停止运行的进程
  • D:当前不可中断的进程
  • Z:zombie,僵尸进程,即进程已终止,但却无法被移除至内存外

3.1.3 STAT状态后的内容含义

  • < 表示进程运行在高优先级上
  • N 表示进程运行在低优先级上
  • L 表示进程有页面锁定在内存中
  • s 表示进程是控制进程
  • l 表示进程是多进程
  • +表示当前进程运行在前台

3.2 以更详细的格式显示进程

[root@localhost ~]# ps -Al | more
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0      1      0  0  80   0 - 48478 ep_pol ?        00:00:03 systemd
1 S     0      2      0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0      4      2  0  60 -20 -     0 worker ?        00:00:00 kworker/0:0H
1 S     0      6      2  0  80   0 -     0 smpboo ?        00:00:00 ksoftirqd/0
1 S     0      7      2  0 -40   - -     0 smpboo ?        00:00:00 migration/0
1 S     0      8      2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_bh
1 S     0      9      2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_sched

3.2.1 ps lA中状态栏的含义

状态栏内容 含义
F 进程的旗标 4表示进程权限root 、1表示进程仅仅只能复制,不能执行、0表示进程已经执行结束。
S 进程的状态,有五个状态,S 睡眠、T 停止、R 运行、D 不可停止、Z 僵尸进程
UID 启用进程的用户UID
PID 进程的PID
PPID 进程的父进程
C CPU的使用率,单位是百分比
PRI Rriority,代表系统内核所设定的优先级,不可修改
NI NIce,代表用户可修改的优先级,优先级越低,就越快被CPU执行
ADDR 该进程在内存的哪个部分
SZ 进程用掉了内存的多少
WCHAN 进程是否再运行,若运行为 –
TTY 进程是否再当前登录的终端启用的,若不是显示为?
TIME 进程使用CPU的时间
COMMAND 当前进程的实际指令

3.3 显示进程的变量和完整的格式

[root@localhost ~]# ps -ef | more
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 15:16 ?        00:00:03 /usr/lib/systemd/systemd --switched-root --system --d
eserialize 22
root          2      0  0 15:16 ?        00:00:00 [kthreadd]
root          4      2  0 15:16 ?        00:00:00 [kworker/0:0H]
......

3.3.1 ps -ef中状态栏的含义

状态栏 含义
UID 运行进程的用户
PID 进程的PID,唯一值
PPID 进程的父进程
C 占用CPU的百分比 %
STIME 进程启动的时间
TTY 启动进程的终端
TIME 进程占用CPU的时间
CMD 运行进程的指令

总结

这个命令要记的参数并不多,可以说常用到的就那么几个,更主要还是要了解这个命令的内容的含义;若觉得以上内容还行的,可以点赞支持一下!



版权声明:本文为rhn_111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。