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,被虚拟化技术偷走的时间(比如运行虚拟机)
原文地址:https://www.cnblogs.com/itwangqiang/p/13456546.html