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,被虚拟化技术偷走的时间(比如运行虚拟机)
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号