zoukankan      html  css  js  c++  java
  • Linux_进程管理相关命令

    一、进程管理命令

    1、ps —— 进程查看命令

    1️⃣:ps(process state)命令用于列出当前的进程

    2️⃣:可以显示详细的进程信息,包括:

    • 用户识别符(UID),它确定进程的特权
    • 唯一进程识别符(PID)
    • CPU和已经花费的实时时间
    • 进程在各种位置上分配的内存数量
    • 进程的位置STDOUT,称为控制终端
    • 当前的进程状态

    3️⃣:ps支持三种选项格式

    • UNIX(POSIX)选项,可以分组但必须以连字符开头
    • BSD 选项,可以分组但不可与连字符同用
    • GNU 长选项,以双连字符开头

    4️⃣:ps(process state),显示进程信息。注意事项:

    • 加了[]中括号的,表示内核线程,通常位于顶部
    • exiting或defunct表示僵尸进程

    5️⃣:常用选项:

    •      a       //显示所有与终端有关的进程
    •      u       //显示进程是由哪个用户启动的
    •      x       //显示所有与终端无关的进程
    •     -e      //显示所有进程,与-A效果相同
    •     -l      //以长格式显示
    •     -F      //显示更详细的完整格式的进程信息
    •     -f      //显示更详细的完整格式的进程信息
    •    -H      //以进程层级格式显示进程相关信息
    •    -o      //根据自己的需要选择要显示的字段

    6️⃣:ps相关参数结果解析

    • ps aux (不能加 -)
      • VSZ     //Virtual memory SiZe,虚拟内存集
      • RSS     //ReSident Size,常驻内存集
      • STAT    //进程状态
      • TIME    //运行时的累积时长
    • ps
      •   NI      //nice值
      • PRI     //优先级
      • PSR     //进程运行在哪个CPU核心上
      • RTPTRIO //实时优先级
      • C       //运行的CPU编号
      • STIME   //进程的启动时间
      • VSZ     //Virtual memory SiZe,虚拟内存集
      • RSS     //ReSident Size,常驻内存集
      • STAT    //进程状态
      • TIME    //运行时的累积时长  

    7️⃣:示例

    [root@localhost ~]# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.9  0.6 178784 13560 ?        Ss   09:45   0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
    root          2  0.0  0.0      0     0 ?        S    09:45   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        I<   09:45   0:00 [rcu_gp]
    root          4  0.0  0.0      0     0 ?        I<   09:45   0:00 [rcu_par_gp]
    root          5  0.0  0.0      0     0 ?        I    09:45   0:00 [kworker/0:0-xfs-cil/dm-0]
    root          6  0.0  0.0      0     0 ?        I<   09:45   0:00 [kworker/0:0H-kblockd]
    root          8  0.0  0.0      0     0 ?        I<   09:45   0:00 [mm_percpu_wq]
    root          9  0.0  0.0      0     0 ?        S    09:45   0:00 [ksoftirqd/0]
    root         10  0.0  0.0      0     0 ?        I    09:45   0:00 [rcu_sched]
    root         11  0.0  0.0      0     0 ?        S    09:45   0:00 [migration/0]
    root         12  0.0  0.0      0     0 ?        S    09:45   0:00 [watchdog/0]
    root         13  0.0  0.0      0     0 ?        S    09:45   0:00 [cpuhp/0]
    root         14  0.0  0.0      0     0 ?        S    09:45   0:00 [cpuhp/1]
    ...........
    
    [root@localhost ~]# ps -ef 
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 09:45 ?        00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
    root          2      0  0 09:45 ?        00:00:00 [kthreadd]
    root          3      2  0 09:45 ?        00:00:00 [rcu_gp]
    root          4      2  0 09:45 ?        00:00:00 [rcu_par_gp]
    root          5      2  0 09:45 ?        00:00:00 [kworker/0:0-events_power_efficient]
    root          6      2  0 09:45 ?        00:00:00 [kworker/0:0H-kblockd]
    root          8      2  0 09:45 ?        00:00:00 [mm_percpu_wq]
    root          9      2  0 09:45 ?        00:00:00 [ksoftirqd/0]
    root         10      2  0 09:45 ?        00:00:00 [rcu_sched]
    root         11      2  0 09:45 ?        00:00:00 [migration/0]
    root         12      2  0 09:45 ?        00:00:00 [watchdog/0]
    root         13      2  0 09:45 ?        00:00:00 [cpuhp/0]
    root         14      2  0 09:45 ?        00:00:00 [cpuhp/1]
    ..........
    
    [root@localhost ~]# ps -elf
    F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
    4 S root          1      0  0  80   0 - 44696 do_epo 09:45 ?        00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
    1 S root          2      0  0  80   0 -     0 -      09:45 ?        00:00:00 [kthreadd]
    1 I root          3      2  0  60 -20 -     0 -      09:45 ?        00:00:00 [rcu_gp]
    1 I root          4      2  0  60 -20 -     0 -      09:45 ?        00:00:00 [rcu_par_gp]
    1 I root          5      2  0  80   0 -     0 -      09:45 ?        00:00:00 [kworker/0:0-events_power_efficient]
    1 I root          6      2  0  60 -20 -     0 -      09:45 ?        00:00:00 [kworker/0:0H-kblockd]
    1 I root          8      2  0  60 -20 -     0 -      09:45 ?        00:00:00 [mm_percpu_wq]
    1 S root          9      2  0  80   0 -     0 -      09:45 ?        00:00:00 [ksoftirqd/0]
    1 I root         10      2  0  80   0 -     0 -      09:45 ?        00:00:00 [rcu_sched]
    1 S root         11      2  0 -40   - -     0 -      09:45 ?        00:00:00 [migration/0]
    5 S root         12      2  0 -40   - -     0 -      09:45 ?        00:00:00 [watchdog/0]
    ...........
    
    [root@localhost ~]# ps -o pid,command,ni
       PID COMMAND                      NI
      2084 -bash                         0
      2111 ps -o pid,command,ni          0
    
    [root@localhost ~]# ps -o pid,command,ni,ppid,c
       PID COMMAND                      NI   PPID  C
      2084 -bash                         0   2083  0
      2113 ps -o pid,command,ni,ppid,c   0   2084  0
    

    2、pstree —— 查看进程树命令

    1️⃣:示例

    [root@localhost ~]# pstree
    systemd─┬─NetworkManager───2*[{NetworkManager}]
            ├─VGAuthService
            ├─anacron
            ├─atd
            ├─auditd─┬─sedispatch
            │        └─2*[{auditd}]
            ├─crond
            ├─dbus-daemon───{dbus-daemon}
            ├─dhclient
            ├─irqbalance───{irqbalance}
            ├─login───bash
            ├─lsmd
            ├─mcelog
            ├─polkitd───5*[{polkitd}]
            ├─rhsmcertd
            ├─rngd───{rngd}
            ├─rsyslogd───2*[{rsyslogd}]
            ├─smartd
            ├─sshd─┬─2*[sshd───sshd───bash]
            │      └─sshd───sshd───bash───pstree
            ├─sssd─┬─sssd_be
            │      └─sssd_nss
            ├─systemd───(sd-pam)
            ├─systemd-journal
            ├─systemd-logind
            ├─systemd-udevd
            ├─tuned───3*[{tuned}]
            └─vmtoolsd───{vmtoolsd}
    

    3、pgrep —— 过滤显示想要的进程;在当前系统中找符合某些特性的进程;只显示进程号

    1️⃣:示例

    [root@localhost ~]# pgrep sshd
    1083
    1686
    1690
    1855
    1859
    2078
    2083
    [root@localhost ~]# ps -ef | grep sshd
    root       1083      1  0 09:45 ?        00:00:00 /usr/sbin/sshd
    root       1686   1083  0 09:47 ?        00:00:00 sshd: root [priv]
    root       1690   1686  0 09:47 ?        00:00:00 sshd: root@pts/0
    root       1855   1083  0 09:49 ?        00:00:00 sshd: root [priv]
    root       1859   1855  0 09:49 ?        00:00:00 sshd: root@pts/1
    root       2078   1083  0 09:51 ?        00:00:00 sshd: root [priv]
    root       2083   2078  0 09:52 ?        00:00:00 sshd: root@pts/2
    root       2198   2084  0 10:04 pts/2    00:00:00 grep --color=auto sshd
    

    4、pidof —— 根据进程名查找其PID号

    1️⃣:演示

    [root@localhost ~]# pidof sshd
    2083 2078 1859 1855 1690 1686 1083
    [root@localhost ~]# ps -ef | grep sshd
    root       1083      1  0 09:45 ?        00:00:00 /usr/sbin/sshd
    root       1686   1083  0 09:47 ?        00:00:00 sshd: root [priv]
    root       1690   1686  0 09:47 ?        00:00:00 sshd: root@pts/0
    root       1855   1083  0 09:49 ?        00:00:00 sshd: root [priv]
    root       1859   1855  0 09:49 ?        00:00:00 sshd: root@pts/1
    root       2078   1083  0 09:51 ?        00:00:00 sshd: root [priv]
    root       2083   2078  0 09:52 ?        00:00:00 sshd: root@pts/2
    root       2204   2084  0 10:06 pts/2    00:00:00 grep --color=auto sshd
    

    5、vmstat —— 虚拟内存状态查看命令

    1️⃣:语法:vmstat   [options]    [delay [count]]  

      示例:

    •   vmstat 2        //表示每2秒刷新一次
    •   vmstat 2 5      //表示每2秒刷新一次,刷新5次后退出    

    2️⃣:常用选项:

    •   -s           //显示内存的统计数据 

    3️⃣:演示

    [root@localhost ~]# vmstat 
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      0 1434576   3196 306752    0    0    84    20   74  107  1  1 98  1  0  

    4️⃣:vmstat相关参数解释

    procs:
        r(running)  //表示等待运行的队列长度,也即等待运行的进程的个数
        b(block)    //表示阻塞队列长度,也即处于不可中断睡眠态的进程个数
    memory:
        swpd        //交换内存的使用总量
        free        //空闲物理内存总量
        buffer      //用于buffer的内存总量
        cache       //用于cache的内存总量
    swap:
        si(swap in)     //表示从物理内存有多少页面换进swap,也即数据进入swap的数据速率(kb/s)
        so(swap out)    //表示从swap有多少页面换进物理内存,也即数据离开swap的数据速率(kb/s)
    io:
        bi(block in)    //表示磁盘块有多少个被调入内存中,也即从块设备读入数据到系统的速率(kb/s)
        bo(block out)   //表示有多少个磁盘块从内存中被同步到硬盘上去了,也即保存数据至块设备的速率(kb/s)
    system:
        in( interrupts)     //表示中断的个数,也即中断速率(kb/s)
        cs(context switch)  //表示上下文切换的次数,也即进程切换速率(kb/s)
    CPU:
        us      //表示用户空间
        sy      //表示内核空间
        id      //表示空闲百分比
        wa      //表示等待IO完成所占据的时间百分比
        st      //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
    
  • 相关阅读:
    Windows 7/8 删除IE临时文件,包括Cookie的批处理
    SQL Server 2005/2008/2008R2/2012 删除登录名的步骤
    NetAdvangate Infragisticss 控件在工程移动到别的机器上,引用失效问题
    如果一个主板有多个BIOS更新包,则只需要更新最新的包即可。
    Intel存储技术软件的兼容性问题,造成磁盘IO不稳,卡死系统
    汤姆大叔JavaCript系列4阅读笔记
    IDL(接口描述语言)
    document.defaultView.getComputedStyle() 的使用
    汤姆大叔JavaCript系列1阅读笔记
    汤姆大叔JavaCript系列10阅读笔记
  • 原文地址:https://www.cnblogs.com/itwangqiang/p/13456546.html
Copyright © 2011-2022 走看看