【Linux】进程的查看详解

      在linux系统当中:触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。

进程的相关知识:

1、进程与程序概念的区分:

程序:程序是静态的文件,通常为二进制程序放置在存储媒介中(如硬盘、光盘、软盘、磁带等),以物理文件的形式存在。例如:/etc/init.d/httpd  本身是一个软件代码

进程:进程是动态的,是运行着的程序。程序被触发执行后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运行中的程序。例如:如果启动/etc/init.d/httpd start 会产生对应的进程,是动态概念。

注意:程序和进程无一一对应关系。一个程序可以由多个进程共用;另一个方面,一个进程在活动中有可顺序地执行若干个程序。

2、子进程和父进程:

PPID就是父进程的PID;从上面可以看出,后一个的进程的父进程就是一个的进程号,子进程由有一个进程所产生的进程,产生这个子进程的进程成为父进程;在linux系统中,使用系统调用fork创建进程(创建进程)。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境,使得子进程实现了继承;当父进程终止子进程自然终止(如果父进程终止,而子进程没有终止,则子进程变成孤儿进程,其父进程会自动指向init进程;如果子进程终止,而父进程不知道,则子进程会变成僵尸进程)

进程的查看:

1、进程查看ps指令:

扫描二维码关注公众号,回复: 50314 查看本文章

常用选项:

   a 显示所有用户的进程

   x 通常与a参数一起用,可列出完整的信息

   e 显示所有进程,包括没有控制终端的进程

   L 长格式显示

常用命令:

   ps 查看隶属于自己的进程

   ps -u or -l 查看隶属于自己进程详细信息

   ps -le or aux 查看所有用户执行的进程的详细信息


ps aux 查看系统所有的进程数据;

USER 该进程属于哪个用户账号的

PID  该进程的进程标识符

%CPU  该进程使用掉的cpu资源百分比

%MEM 该进程所占用的物理内存百分比

VSZ  该进程使用掉的虚拟内存量(KB)

RSS   该进程占用的真实的内存量

TTY 该进程是在哪个终端机上面运行,若与终端机无关,则显示?另外,tty1-tty6是本机上面的登陆者程序,若为pts/0等的,则表示为由网络连接进主机的进程。 

 STAT 该进程目前的状态,状态和底下分类一样,至于后边加的,表示的意义。

       < 高优先级的

        N 低优先级的

       L 有内存分页但是带锁

       小写s 包含子进程

       小写l   多线程

       +   前台程序,前台和它交互的程序()

 START 该进程被触发启动的时间 

 TIME 该进程实际使用CPU运行的时间

 COMMAND 该进程的实际命令



Ps -l 仅查看自己的bash相关进程

F 进程标志 4 此进程的权限为root

                  1 此进程仅可进行复制(fork)而无法被执行(exec)

S 进程状态 R:该进程正在运行中

                  S:该进程目前正在睡眠状态(idle),但可以被唤醒(signal)

                  D: 不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况(ex>打印)

                  T:停止状态,stop,可能是在工作控制(后台暂停)或除错(traced)状态

                  Z:“僵尸”状态,进程已经终止但却无法被删除至内存外

(注意:比如 ctrl+z 就是stop一个进程,ctrl-c是发送SIGINT,终止一个进程,Ctrl-z 是发送SIGSTOP信号,挂起一个进程)




UID/PID/PPID  代表此进程被该UID所拥有/进程的PID号码/此进程的父进程PID号码

C CPU使用率,单位为百分比

PRI/NI  代表此进程被CPU所执行的优先级。数值越小代表该进程越快被CPU执行

ADDR/SZ/WCHAN 都与内存有关,ADDR表示该进程在内存的哪个部分,如果是running的进程,一般会显示”-“,SZ表示此进程用掉多少内存;WCHAN表示目前进程是否运行中,同样,若是-表示正在运行中

TTY  登陆者的终端机位置,若为远程登陆则使用动态终端接口(pts/n)

TIME 使用掉的CPU的时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间

CMD  造成此程序的触发进程的命令为何用途

列出占有CPU最多的10个进程:ps -eo comm,pcpu --sort -pcpu | head



2、top动态查看进程的变化:

        Top也是程序查看工具,但是不同于ps是静态的结果输出,top这个程序可以持续检测整个系统的进程工作状态。


05:49:43 目前的时间 

up 14 min 开机到目前为止所经过的时间

2 user 已经登陆系统的用户人数

load average:0.00,0.03,0.06  系统的平均工作负荷

Task:130 total  进程总数 (后面依次为状态的数量)

   1 running        正在运行的进程数

   129sleeping     睡眠的进程数

    0 stopped        停止的进程数

    0 zombie           僵尸进程数

%Cpu(s): 系统用户进程使用CPU百分比,%CPU是每个核的CPU占用率之和算出来的

mem 物理内存

swap 虚拟内存交换区

注:Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行 的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从 Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器 的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。

PID  USER  PR  NI VIRT    RES    SHR S %CPU %MEM  TIME+ COMMAND 

PID:进程ID 

USER:进程所属的用户 

PR:Priority的简写,进程的优先执行顺序,越小越早被执行

NI:Nice的简写,与priority有关,也是越早越被执行

VIRT:进程使用的虚拟内存总量

RES:进程使用的、未被使出的物理内存大小

SHR:共享内存大小

%CPU:CPU的使用率

%MEM:内存的使用率

TIME+:CPU使用时间的累加

COMMAND:命令行

在top执行的过程中,可以使用以下按键命令:

?显示在top当中可以输入的按键命令

P  以CPU的使用资源排序显示

M  以内存的使用资源排序显示

N  以PID来排序

T  由该进程使用的cpu时间累积(TIME+)排序

小写k 给予某个PID一个信号

小写r 给予某个PID重新定义一个nice值

小写q 离开top软件的按键

pstree查看各进程间的关系:

      由pstree输出可以清楚的知道,所有的进程都是依附在init这个进程下面,这个进程的id号是1,是由linux内核所主动调用的第一个进程。如果子进程挂掉或是老是杀不掉子进程时,就可以用pstree来找到父进程来杀掉!进程是贯穿了整个操作系统,以上便是对 ps top 指令的一些个人总结,有不足的地方欢迎大家批评指正~

猜你喜欢

转载自blog.csdn.net/yaotengjian/article/details/80052002