Linux ps命令详解

ps 命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息

参数:

  • a:显示一个终端的所有进程,除会话引线外;
  • u:显示当前用户进程及内存的使用情况;
  • x:显示没有控制终端的进程;
  • l:长格式显示更加详细的信息;
  • e:显示所有进程;
  • f:全格式,包括命令行

几个固定参数,比如:

  • ps -aux:可以查看系统中所有的进程;
  • ps -le:可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
  • ps -l:只能看到当前 Shell 产生的进程;
  • ps -T -p <pid>:查看指定进程的所有线程
  • ps -Lf <pid>:查看指定进程的所有线程的详细信息

【例1】查看系统所有进程

shen@ubuntu-vm:~$ ps -aux | head -10
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.2 168412 10388 ?        Ss   12:47   0:01 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    12:47   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   12:47   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   12:47   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   12:47   0:00 [netns]
root           7  0.0  0.0      0     0 ?        I<   12:47   0:00 [kworker/0:0H-events_highpri]
root          10  0.0  0.0      0     0 ?        I<   12:47   0:00 [mm_percpu_wq]
root          11  0.0  0.0      0     0 ?        S    12:47   0:00 [rcu_tasks_rude_]
root          12  0.0  0.0      0     0 ?        S    12:47   0:00 [rcu_tasks_trace]
表头含义
USER该进程是由哪个用户产生的
PID进程的 ID
%CPU该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源
%MEM该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源
VSZ该进程占用虚拟内存的大小,单位为 KB
RSS该进程占用实际物理内存的大小,单位为 KB
TTY该进程是在哪个终端运行的。
其中,tty1 ~ tty7 代表本地控制台终端,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 aux"命令可以看到系统中所有的进程,"ps -le"命令也能看到系统中所有的进程。由于 “-l” 选项的作用,所以 “ps -le” 命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的,掌握其中一个就足够了

shen@ubuntu-vm:~$ ps -le | head -10
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0       1       0  0  80   0 - 42103 -      ?        00:00:01 systemd
1 S     0       2       0  0  80   0 -     0 -      ?        00:00:00 kthreadd
1 I     0       3       2  0  60 -20 -     0 -      ?        00:00:00 rcu_gp
1 I     0       4       2  0  60 -20 -     0 -      ?        00:00:00 rcu_par_gp
1 I     0       5       2  0  60 -20 -     0 -      ?        00:00:00 netns
1 I     0       7       2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H-events_highpri
1 I     0      10       2  0  60 -20 -     0 -      ?        00:00:00 mm_percpu_wq
1 S     0      11       2  0  80   0 -     0 -      ?        00:00:00 rcu_tasks_rude_
1 S     0      12       2  0  80   0 -     0 -      ?        00:00:00 rcu_tasks_trace
表头含义
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 -l” 命令就足够了:

shen@ubuntu-vm:~$ ps -l
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000   14230   14088  0  80   0 -  3524 do_wai pts/3    00:00:00 bash
0 R  1000   16222   14230  0  80   0 -  3622 -      pts/3    00:00:00 ps

可以看到,这次从 pts/3 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。

我们再来说说僵尸进程。僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源

僵尸进程会对主机的稳定性产生影响,所以,在产生僵尸进程后,一定要对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,可以在查找出来之后强制中止

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bugcoder-9905

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值