美文网首页
Linux查看进程的几种方法(ps、top、pstree)

Linux查看进程的几种方法(ps、top、pstree)

作者: 马尔代夫Maldives | 来源:发表于2023-01-10 15:26 被阅读0次

简要:

ps aux:显示所有进程
ps -le(ps -lef): 显示更详细的信息
ps -lu 用户名: 只输出与“用户名”相关的进程
ps -l: 只输出当前终端产生的进程
top:动态交互显示进程、cup、内存,类似windows任务管理器(按“q”退出top命令)
pstree -aup:命令树形式显示进程

kill -9 3652309 3650384(加上sudo)(3652309和3650384是PID号,进程号):杀死对应进程

一、ps 命令

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

1)ps aux:显示所有进程

  • a:显示当前终端下的所有进程信息,包括其他用户的进程。
  • u:使用以用户为主的格式输出进程信息。
  • x:显示当前用户在所有终端下的进程。

示例:

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   4436  3344 ?        Ss    2022   0:00 /bin/bash /usr/sbin/sshd -D
root         7  0.0  0.0  12352  7464 ?        S     2022   0:00 sshd_origin: /usr/sbin/sshd_origin -D [listener] 0 of 10-100 startups
root        13  7.7  0.0 735452 20992 ?        Sl    2022 5444:01 /home/chenmi/node_exporter/node_exporter-1.3.1.linux-amd64/node_exporter
root        14  0.1  0.0 716120 21040 ?        Sl    2022 101:55 /home/chenmi/node_exporter/nvidia_gpu_exporter
root        28  0.0  0.0   3880  2336 ?        Ss    2022   0:34 /usr/sbin/cron
root        29  1.6  0.0 5592624 27276 ?       Sl    2022 1184:43 /home/chenmi/process-exporter-0.7.10.linux-amd64/process-exporter -config.path /home/chenmi/process-exporter-0.7.10.linux-amd64
root        99  0.0  0.0  13604  8608 ?        Ss    2022   0:00 sshd_origin: tunnel [priv]
tunnel     101  0.0  0.0  13852  6136 ?        S     2022   2:23 sshd_origin: tunnel
root       102  0.0  0.0  13600  8460 ?        Ss    2022   0:00 sshd_origin: tunnel [priv]
tunnel     104  0.0  0.0  13848  6108 ?        S     2022   1:43 sshd_origin: tunnel
root       105  0.0  0.0  13608  8728 ?        Ss    2022   0:00 sshd_origin: tunnel [priv]
tunnel     107  0.0  0.0  13860  6204 ?        S     2022   3:34 sshd_origin: tunnel
chengao+  5254  0.0  0.0   4144  2556 ?        Ss    2022   0:00 SCREEN
chengao+  5255  0.0  0.0   4376  3644 pts/6    Ss+   2022   0:00 /bin/bash
chenmi    7852  0.0  0.0   9024  4236 ?        Ss    2022   0:02 tmux -2
chenmi    7855  0.0  0.0   7356  4200 pts/12   Ss+   2022   0:00 -bash
chenmi    9008  0.0  0.0   7240  4036 pts/13   Ss+   2022   0:00 -bash
root     12587  0.0  0.0  13660  8724 ?        Ss    2022   0:00 sshd_origin: tunnel [priv]

输出参数说明:
USER:该进程是由哪个用户产生的。
PID:进程的 ID。
%CPU:该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
%MEM:该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
VSZ:该进程占用虚拟内存的大小,单位为 KB。
RSS:该进程占用实际物理内存的大小,单位为 KB。
TTY:该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。
STAT:进程状态。常见的状态有以下几种:
-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。
-W:内存交互状态(从 2.6 内核开始无效)。
-X:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在 BSD 格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写 L)。
-+:位于后台。

START:该进程的启动时间。
TIME:该进程占用 CPU 的运算时间,注意不是系统时间。
COMMAND:产生此进程的命令名。

2)ps -le 或(ps -lef): 显示更详细的信息

  • -l:长格式显示更加详细的信息;
  • -e:显示所有进程;
  • -f:使用完整的(full)格式显示进程信息;

"ps aux"命令可以看到系统中所有的进程,"ps -le"命令也能看到系统中所有的进程。由于 "-l" 选项的作用,所以 "ps -le" 命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的,掌握其中一个就足够了。

示例:

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>ps -le
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 -  1109 -      ?        00:00:00 sshd
4 S     0     7     1  0  80   0 -  3088 -      ?        00:00:00 sshd_origin
4 S     0    13     1  7  80   0 - 183863 -     ?        3-18:45:32 node_exporter
4 S     0    14     1  0  80   0 - 179030 -     ?        01:41:57 nvidia_gpu_expo
5 S     0    28     1  0  80   0 -   970 -      ?        00:00:34 cron
4 S     0    29     1  1  80   0 - 1398156 -    ?        19:45:04 process-exporte
4 S     0    99     7  0  80   0 -  3401 -      ?        00:00:00 sshd_origin
5 S  8895   101    99  0  80   0 -  3463 -      ?        00:02:23 sshd_origin
4 S     0   102     7  0  80   0 -  3400 -      ?        00:00:00 sshd_origin
5 S  8895   104   102  0  80   0 -  3462 -      ?        00:01:43 sshd_origin
4 S     0   105     7  0  80   0 -  3402 -      ?        00:00:00 sshd_origin
5 S  8895   107   105  0  80   0 -  3465 -      ?        00:03:34 sshd_origin
5 S  8906  5254     1  0  80   0 -  1036 poll_s ?        00:00:00 screen
0 S  8906  5255  5254  0  80   0 -  1094 poll_s pts/6    00:00:00 bash
5 S  8892  7852     1  0  80   0 -  2256 -      ?        00:00:02 tmux: server

输出参数说明:
F:进程标志,说明进程的权限,常见的标志有两个:1(进程可以被复制,但是不能被执行),4(进程使用超级用户权限);
S:进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
UID:运行此进程的用户的 ID;
PID:进程的 ID;
PPID:父进程的 ID;
C:该进程的 CPU 使用率,单位是百分比;
PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;
NI:进程的优先级,数值越小,该进程越早被执行;
ADDR:该进程在内存的哪个位置;
SZ:该进程占用多大内存;
WCHAN:该进程是否运行。"-"代表正在运行;
TTY:该进程由哪个终端产生;
TIME:该进程占用 CPU 的运算时间,注意不是系统时间;
CMD:产生此进程的命令名。

3)ps -lu 用户名: 只输出“用户名”指定的进程

  • -u:指定用户名或用户uid;
  • -l:同上;

示例(这里chengaoxiang的UID是8906):

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>ps -lu chengaoxiang
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 S  8906  5254     1  0  80   0 -  1036 poll_s ?        00:00:00 screen
0 S  8906  5255  5254  0  80   0 -  1094 poll_s pts/6    00:00:00 bash
5 S  8906 33822 33820  0  80   0 -  3474 -      ?        00:02:30 sshd_origin
4 S  8906 33830 33822  0  80   0 - 216772 futex_ pts/0   00:00:42 python3.7
0 S  8906 33871 33822  0  80   0 -  1493 -      ?        00:00:44 sftp-server
5 S  8906 34888 34883  0  80   0 -  3474 -      ?        00:00:00 sshd_origin
0 S  8906 34889 34888  0  80   0 -  1094 poll_s pts/2    00:00:00 bash
4 S  8906 40593 33822  0  80   0 - 189886 futex_ pts/1   00:00:09 python3.9
4 S  8906 45843 33822  0  80   0 - 4927287 futex_ pts/4  00:01:56 python3.9
0 T  8906 77424 34889  0  80   0 -  1563 do_sig pts/2    00:00:00 top
0 T  8906 77430 34889  0  80   0 -  1563 do_sig pts/2    00:00:00 top
5 S  8906 77459 77457  0  80   0 -  3475 -      ?        00:00:00 sshd_origin
0 S  8906 77460 77459  0  80   0 -  1094 poll_s pts/3    00:00:00 bash
5 S  8906 77542 77540  0  80   0 -  3475 -      ?        00:00:00 sshd_origin
0 S  8906 77543 77542  0  80   0 -  1094 do_wai pts/5    00:00:00 bash

4)ps -l: 只输出当前终端产生的进程

示例(可见,该终端只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。):

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  8906 78035 78034  0  80   0 -  1094 do_wai pts/7    00:00:00 bash
0 R  8906 78053 78035  0  80   0 -  1454 -      pts/7    00:00:00 ps

二、top 命令

以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每3秒刷新一次,其作用基本类似于Windows系统中的任务管理器。
按“q”退出top命令。

示例:

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>top
top - 15:11:52 up 163 days,  1:56, 11 users,  load average: 4.06, 4.32, 4.36
Tasks:  56 total,   1 running,  49 sleeping,   6 stopped,   0 zombie
%Cpu(s):  3.2 us,  2.1 sy,  0.0 ni, 94.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 772682.1 total, 200051.0 free,  99103.9 used, 473527.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used. 669258.4 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                    
    1 root      20   0    4436   3344   2680 S   0.0   0.0   0:00.16 sshd                                                                                                                       
    7 root      20   0   12352   7464   6384 S   0.0   0.0   0:00.48 sshd_origin                                                                                                                
   13 root      20   0  735452  21544  11692 S   0.0   0.0   5448:17 node_exporter                                                                                                              
   14 root      20   0  716120  20468   8732 S   0.0   0.0 102:00.74 nvidia_gpu_expo                                                                                                            
   28 root      20   0    3880   2336   2012 S   0.0   0.0   0:34.33 cron                                                                                                                       
   29 root      20   0 5592624  28020  10760 S   0.0   0.0   1185:43 process-exporte                                                                                                            
   99 root      20   0   13604   8608   7140 S   0.0   0.0   0:00.01 sshd_origin                                                                                                                
  101 tunnel    20   0   13852   6136   4592 S   0.0   0.0   2:23.77 sshd_origin                                                                                                                
  102 root      20   0   13600   8460   6988 S   0.0   0.0   0:00.01 sshd_origin                                                                                                                
  104 tunnel    20   0   13848   6108   4620 S   0.0   0.0   1:43.14 sshd_origin                                                                                                                
  105 root      20   0   13608   8728   7252 S   0.0   0.0   0:00.01 sshd_origin                                                                                                                
  107 tunnel    20   0   13860   6204   4656 S   0.0   0.0   3:34.21 sshd_origin                                                                                                                
 5254 chengao+  20   0    4144   2556   1836 S   0.0   0.0   0:00.00 screen                                                                                                                     
 5255 chengao+  20   0    4376   3644   2924 S   0.0   0.0   0:00.04 bash                                                                                                                       
 7852 chenmi    20   0    9024   4236   3364 S   0.0   0.0   0:02.90 tmux: server                                                                                                               
 7855 chenmi    20   0    7356   4200   3540 S   0.0   0.0   0:00.03 bash                                                                                                                       
 9008 chenmi    20   0    7240   4036   3420 S   0.0   0.0   0:00.00 bash                                                                                                                       
12587 root      20   0   13660   8724   7244 S   0.0   0.0   0:00.01 sshd_origin                                                                                                                
12589 tunnel    20   0   15076   7628   4588 S   0.0   0.0   0:06.11 sshd_origin                                                                                                                
20551 houliya   20   0    2612    532    464 S   0.0   0.0   0:00.00 sh                                                                                                                         
20561 houliya   20   0  910224  62788  36024 S   0.0   0.0   1:12.86 node              

输出参数说明:
Tasks【系统任务】:xx total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死进程数。
%Cpu(s)【cpu信息】:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。了解空闲的CPU百分比,主要看%id部分。
MiB Mem【内存信息】:total,总内存空间;used,已用内存;free,空闲内存;buffers,缓存区域。
MiB Swap【交换空间信息】:total,总交换空间;used,已用交换空间;free,空闲交换空间;cached,缓存空间。

三、pstree 命令(不常用)

以树状图的方式展现进程之间的派生关系,显示效果比较直观。

  • -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;
  • -c:不使用精简标示法;
  • -G:使用VT100终端机的列绘图字符;
  • -h:列出树状图时,特别标明现在执行的程序;
  • -H<程序识别码>:此参数的效果和指定”-h”参数类似,但特别标明指定的程序
  • -l:采用长列格式显示树状图;
  • -n:用程序识别码排序。预设是以程序名称来排序;
  • -p:显示程序识别码
  • -u:显示用户名称;

示例:

[chengaoxiang@terminal-rn-cxzenicu-0-xyjwmdib-65c5c6c668-mxk67:~]$>>pstree -aup
sshd,1 /usr/sbin/sshd -D
  |-cron,28
  |-node_exporter,13
  |   |-{node_exporter},18
  |   |-{node_exporter},19
  |   |-{node_exporter},20
  |   |-{node_exporter},21
  |   |-{node_exporter},22
  |   |-{node_exporter},119
  |   |-{node_exporter},120
  |   |-{node_exporter},121
  |   |-{node_exporter},122
……

三、kill杀死进程(PID)或父进程(PPID)

kill -9 3652309 3650384(加上sudo)(3652309和3650384是PID号,进程号)

相关文章

网友评论

      本文标题:Linux查看进程的几种方法(ps、top、pstree)

      本文链接:https://www.haomeiwen.com/subject/bfdvcdtx.html