hopeless-dream

导航

ps命令

介绍

Linux中的ps命令是Process Status的缩写。显示系统当前终端下属于当前用户的进程快照,不能实时显示。

语法

ps [options]

选项

Unix风格测选项

选项名 含义
-a 显示同一终端下的所有程序
-A 显示所有进程
-N 显示与指定参数不符的所有进程
-e 等于“-A”
-H 显示树状结构
-l 长格式显示
-au  
-aux 显示所有包含其他使用者的行程

-C cmdlist

列出包含在cmdlist中的进程

-o format

仅显示指定的列

-L 

显示进程中的线程

--lines

每页显示的字符数

 

使用示例

# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   1055   1048  0  80   0 - 29150 do_wai pts/0    00:00:00 bash
0 R     0   1395   1055  0  80   0 - 38328 -      pts/0    00:00:00 ps

输出结果字段说明:

  • F:程序的Flag,4代表用户为超级用户
  • S:程序的运行状态
    • R:正在运行或可被运行的程序
    • S:睡眠中的程序
    • T:侦测中或已停止的程序
    • Z:非父进程管理终止的僵尸状态的子进程(已终止运行)
  • UID:运行程序的用户ID

  • PID:该程序的 ID 

  • PPID:父进程的ID

  • C: CPU使用的资源百分比

  • PRI: 进程的优先级

  • NI:这个是 Nice 值

  • ADDR:这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"

  • SZ:使用掉的内存大小

  • WCHAN:目前这个程序是否正在运作当中,若为 - 表示正在运作

  • TTY:登入者的终端机位置

  • TIME:使用掉的 CPU 时间。CMD 所下达的指令为何

  •  CMD:启动的程序名称

以指定的字段显示

[root@tomcat ~]# ps -eo rss,pmem,pcpu,vsize,args | less
  RSS %MEM %CPU    VSZ COMMAND
 6432  0.6  0.0 127908 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    0  0.0  0.0      0 [kthreadd]
    0  0.0  0.0      0 [ksoftirqd/0]
    0  0.0  0.0      0 [kworker/0:0H]

以下是BSD风格的参数

T 显示跟当前终端关联的所有进程 
a 显示跟任意终端关联的所有进程
g 显示所有的进程,包括控制进程
r 仅显示运行中的进程
x 显示所有的进程,甚至包括未分配任何终端的进程
U userlist 显示归userlist列表中某用户ID所有的进程 
p pidlist 显示PID在pidlist列表中的进程
O format 除了默认输出的列之外,还输出由format指定的列
Z 将安全信息添加到输出中
j 显示任务信息
l 采用长模式
o format 仅显示由format指定的列
s 采用信号格式显示
u 采用基于用户的格式显示
v 采用虚拟内存格式显示
N namelist 定义在WCHAN列中使用的值
O order 定义显示信息列的顺序
S 将数值信息从子进程加到父进程上,比如CPU和内存的使用情况
c 显示真实的命令名称(用以启动进程的程序名称)
e 显示命令使用的环境变量
f 用分层格式来显示进程,表明哪些进程启动了哪些进程
k sort 指定用以将输出排序的列
n 和WCHAN信息一起显示出来,用数值来表示用户ID和组ID
w 为较宽屏幕显示宽输出
H 将线程按进程来显示
m 在进程后显示线程 
L 列出所有格式指定符

示例

[root@mysql ~]# ps aux --sort=-%cpu|less
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        860  0.2  1.8 560612 56860 ?        Ssl  Oct21   5:50 /usr/bin/containerd
test      41351  0.2  4.3 2802016 131424 ?      Sl   Oct22   3:15 /home/test/softwares/jdk1.8.0_191/bin/java

输出信息说明

VSZ:进程在内存中的大小,以千字节(KB)为单位。

RSS:进程在未换出时占用的物理内存。
STAT:代表当前进程状态的双字符状态码

<:该进程运行在高优先级上。

N:该进程运行在低优先级上。

L:该进程有页面锁定在内存中。

s:该进程是控制进程。

l:该进程是多线程的。

+:该进程运行在前台。

以指定字段进行排序

排序中"+" 或者" "表示升序(默认),"-" 表示降序

# ps aux --sort=-%cpu|less
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
test        531  0.1  9.3 2270040 93388 ?       Sl   20:58   0:11 /home/test/softwares/jdk1.8.0_191/bin/java -Djava.util.logging.config.file=/home/test/softwares/apache-tomcat-8.5.6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /home/test/softwares/apache-tomcat-8.5.6/bin/bootstrap.jar:/home/test/softwares/apache-tomcat-8.5.6/bin/tomcat-juli.jar -Dcatalina.base=/home/test/softwares/apache-tomcat-8.5.6 -Dcatalina.home=/home/test/softwares/apache-tomcat-8.5.6 -Djava.io.tmpdir=/home/test/softwares/apache-tomcat-8.5.6/temp org.apache.catalina.startup.Bootstrap start
root          1  0.0  0.6 127908  6432 ?        Ss   20:58   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    20:58   0:00 [kthreadd]

 最有用的长参数

--format显示指定的列

[root@localhost test]# ps --format rss,pmem,pcpu,vsize,args 
  RSS %MEM %CPU    VSZ COMMAND
 3364  0.1  0.0 116700 -bash
 1504  0.0  0.0 153312 ps --format rss,pmem,pcpu,vsize,args

--forest   类似pstree,会显示进程的层级信息

[root@localhost test]# ps -ef --forest

root        775      1  0 Aug27 ?        00:00:00 /usr/sbin/sshd -D
root       1201    775  0 Aug27 ?        00:00:00  \_ sshd: root@pts/0
root       1203   1201  0 Aug27 pts/0    00:00:00      \_ -bash
root       1970   1203  0 01:37 pts/0    00:00:00          \_ ps -ef --forest

 

posted on 2021-06-04 10:40  hopeless-dream  阅读(143)  评论(0编辑  收藏  举报