美文网首页
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