ps -- 查看进程

ps 

命令:用于查看进程相关信息,默认只显示前台进程。 

命令使用格式:ps [选项] 

常用的参数: 

(1)   a:  显示跟当前终端关联的所有进程。 

(2)   u:  基于用户的格式显示(U:  显示某用户 ID 所有的进程)。 

(3)   x:  显示所有进程,不以终端机来区分。

 

例 10.1:常用的选项组合是  ps -aux。 

[root@xuegod63 ~]# ps -axu | more      #查看进程,如图  10-2  所示。

image.png

image.png

图  10-2  查看进程 

注:  最后一列[xxxx]  使用方括号括起来的进程是内核态的进程,没有括起来的是用户态进程。 

上面的参数输出每列含意: 

USER:  启动这些进程的用户。 

PID:  进程的 ID。 

%CPU  进程占用的 CPU 百分比。  

%MEM  占用内存的百分比。 

VSZ:进程占用的虚拟内存大小(单位:KB)。 

RSS:进程占用的物理内存大小(单位:KB)。 

STAT:该程序目前的状态,Linux 进程有 5 种基本状态: 

        R  :该程序目前正在运作,或者是可被运作。 

        S  :该程序目前正在睡眠当中  (可说是  idle  状态啦!),但可被某些讯号(signal)  唤醒。 

        T  :该程序目前正在侦测或者是停止了。 

        Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成  zombie (疆尸)  程序状态。 

        D  :不可中断状态。 

        5 个基本状态后,还可以加一些字母,比如:Ss、R+,如图  10-3  所示。

image.png

图  10-3  进程状态 

含意如下: 

        <:表示进程运行在高优先级上。 

        N:表示进程运行在低优先级上。 

        L:表示进程有页面锁定在内存中。 

        S:表示进程是控制进程。 

        L:表示进程是多线程的。 

        +:表示当前进程运行在前台。 

START:该  process  被触发启动的时间。 

TIME :该  process  实际使用  CPU 运作的时间。 

COMMAND:该程序的实际指令。 

例 10.2:  查看进程状态。 

[root@xuegod63 ~]# vim a.txt 

(1)   在另一个终端执行: 

[root@xuegod63 ~]# ps -aux | grep a.txt      #查看状态  S 表示睡眠状态,+  表示前台。 

root            4435    0.0    0.2 151752    5292 pts/1        S+      20:52      0:00 vim a.txt 

root            4661    0.0    0.0 112676      996 pts/0        S+      21:05      0:00 grep --color=auto 

a.txt 

(2)   在 vim a.txt  这个终端上按下:  ctrl+z     

[1]      +    已停止                              vim a.txt 

(3)   在另一个终端执行。 

[root@xuegod63 ~]# ps -aux | grep a.txt        #查看状态  T 表示停止状态。 

root            4435    0.0    0.2 151752    5292 pts/1        T        20:52      0:00 vim a.txt 

root            4675    0.0    0.0 112676      996 pts/0        S+      21:05      0:00 grep --color=auto 

a.txt 

注: 

1、   ctrl-c  是发送  SIGINT  信号,终止一个进程。 

2、   ctrl-z  是发送  SIGSTOP 信号,挂起一个进程。将作业放置到后台(暂停)。 

3、   ctrl-d  不是发送信号,而是表示一个特殊的二进制值,表示  EOF。代表输入完成或者注销。 

例 10.3:  D  不可中断状态。 

[root@xuegod63 ~]# tar -zcvf usr-tar.gz /usr/        #解压文件。 

(1)   然后在另一个终端不断查看状态,由 S+,R+变为 D+  如图  10-4  所示。 

image.png

图  10-4  不可中断状态 

ps 常用的参数:  ps -ef 

    -e    显示所有进程。 

    -f    显示完整格式输出。 

常用的组合:  ps -ef  如图  10-5  所示。

image.png

图  10-5 ps -ef 执行结果 

包含的信息如下 

1、   UID:  启动这些进程的用户。 

2、   PID:  进程的 ID。 

3、   PPID:  父进程的进程号。 

4、   C:  进程生命周期中的 CPU 利用率。 

5、   STIME:  进程启动时的系统时间。 

6、   TTY:  表明进程在哪个终端设备上运行。如果显示?表示不终端无关,这种进程一般是内核态进程。另外,  tty1-tty6  是本机上面的登入者程序,若为  pts/0 等,则表示运行在虚拟终端上的程。 

7、   TIME:  运行进程一共累计占用的 CPU 时间。 

8、   CMD:  启动的程序名称。 

例 10.4:测试 CPU 使用时间。 

[root@localhost ~]# dd if=/dev/zero of=/a.txt count=10 bs=100M  #使用 dd 命令生成一个

1G 的文件。 

[root@localhost ~]# ps -axu | grep dd  #查看进程,并过虑 dd 进程。 

注: 

1、   ps aux  是用 BSD 的格式来显示进程。 

2、   ps -ef  是用标准的格式显示进程。 

版权声明:
作者:WaterBear
链接:https://l-t.top/1346.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>