Linux常用命令三之进程及任务管理命令

一、基础概念

    1、 进程:触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。通常,程序一般是放在磁盘中,然后通过用户的执行来触发。触发后会加载到内存中成为一个个体,那就是进程。为了操作系统可管理这个进程,因此进程有给予执行者的权限/属性等参数,并包括进程所需要的脚本与数据或文件数据等,最后再给予一个PID。

二、相关命令              

    1、 top:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

top命令显示的结果可以分为两个部分:统计信息、进程信息。                    

(1)统计信息:

                                   Linux常用命令三之进程及任务管理命令 

        第一行显示的是:目前开机时间、开机到目前为止所经历的时间、已经登陆系统的用户人数、系统在间隔时间内的 平均负载。

        第二行显示的是:目前进程的总量与个别进程在什么状态(running sleepingstopped zombie)。最后显示的是僵尸进程,需要特别注意。

        第三行显示的是:CPU整体负载数,其中wa表示的是I/O等待,通常系统会变慢是由于I/O产生的问题。因此要注意这个选 项耗用的CPU资源。

        第四行和第五行显示的是:目前物理内存和虚拟内存的使用情况。值得注意的是要注意的是 swap使用量尽量少!否则表示系统的物理内存实在不足!

(2)进程信息

                                 Linux常用命令三之进程及任务管理命令

          PID:进程ID号

          USER:进程所有者

          PR:进程有限执行顺序,越小越早被执行;

          NI:nice值,负值表示高优先级,正值表示低优先级

          VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES  

          RES: 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA  

          SHR : 共享内存大小,单位kb 

          S : 进程状态。D=不可中断的睡眠状态  R=运行  S=睡眠  T=跟踪/停止  Z=僵尸进程   

          %CPU : CPU时间占用百分比   

         %MEM —  进程使用的物理内存和总内存百分比  

         TIME+ —  该进程启动后占用CPU时间,即占用CPU使用时间的累加值,单位1/100秒 

         COMMAND —  进程启动命令名称(命令名/命令行)

 

        top在执行过程中可以使用交互命令(即按键命令),常用的命令如下:

                <空格> 立即刷新显示;

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

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

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

                t        切换显示进程和CPU装态信息    

                q        退出

2、htop:与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

Linux常用命令三之进程及任务管理命令

3、 ps:该命令是最基本同时也是非常强大的进程查看命令。使用该命令可以查看有哪些进程正在运行以及运行的状态,进程是否结束进程有没有僵死,哪些进程占用了过多的资源等等。

        ① 在终端输入ps,显示如下:

                                    Linux常用命令三之进程及任务管理命令

            该命令显示当前登录用户的执行进程。显示的项目共分为四项依次为PID(进程ID)、TTY(终端名称)、TIME(进程执                       行时间)、CMD(该进程的命令行输入) 

        ② 在终端输入 ps –ef,显示如下:

                                    Linux常用命令三之进程及任务管理命令

该命令将显示所有执行进程的信息。显示的项目依次为UID(执行进程的用户ID)、PID(进程ID)、PPID(父进程                         ID)、TTY(终端名称)、STIME(进程启动时间)、TIME(进程执行时间) 、CMD(该进程的命令行输入)

       ③ 在终端输入 ps –ef|gerp 特定进程,显示如下:

         Linux常用命令三之进程及任务管理命令

           将只显示出包含liuying的输出行,可以查询执行进程的用户为liuying的所有进程。

4、进程管理命令 

(1)kill:可以用来终止后台进程。kill命令是通过向进程发送指定的信号来结束进程的。

                ① 常见的signal:

Linux常用命令三之进程及任务管理命令

上面利用 kill -l 列出所有信号,其中:

                        SIGHUP(1):启动被终止的进程,可让该PID重新读取自己的配置文件,类似重新启动。

                        SIGKILL(9):代表强制中断一个进程的进行,如果该进程进行到一半,那么尚未完成的部分可能会有“半产 品”产生,类似vim会有.filename.swp保留下来。

                        SIGTERM(15):以正常的结束进程来终止该进程。由于是正常的终止,所以后续的操作会将它完成。

                ② 常见的命令

                        kill –s信号进程号:其中,发出的信号既可以是信号名也可以对应数字。例如

                        kill -9 1234命令,将终止PID(进程号)为1234的进程

               ③ ps -ef|grep vim:用ps查找(进程pid号),然后杀掉。

                        首先在终端执行sleep 30

                               Linux常用命令三之进程及任务管理命令

                      然后在另一终端ps其pid号

                             Linux常用命令三之进程及任务管理命令

                      在第一个终端显示:

                              Linux常用命令三之进程及任务管理命令

(2)killall:杀死所有同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还
需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。 

(3)pkill 

(4) nice:给予新的nice值。nice命令可以修改进程的优先级,进而调整进程调度。nice值的范围是[-20, 19], -20表示进程的最高优先级,19表示进程的最低优先级。Linux进程的默认nice值为0。使用nice可调整进程的优先级,这样调度器就会依据进程优先级,为其分配CPU资源。 

            ①sleep 200&后,ps -el | grep sleep抓取,无nice命令,优先级数值为0

          Linux常用命令三之进程及任务管理命令                                                                                                                                                             Linux常用命令三之进程及任务管理命令    

                 nice sleep 200&后,ps -el | grep sleep抓取,优先级NI数值为10 

          Linux常用命令三之进程及任务管理命令

              ②普通用户,无权拉优先级 ,若设置优先级则需要进入root

           Linux常用命令三之进程及任务管理命令

使用场景:在实际应用中,如果要运行一个CPU密集型程序,最好通过nice命令来启动它,这样可以保证其他进程获得更高的优先级,即使服务器或台式机在负载很重的情况下,也可以快速响应。

(5)renice:renice命令是与nice关联的一个命令,由re两个字母就知道可以重新调整进程执行的优先级,可以指定群组或者用户名调整优先级等级,并修改隶属于该群组或者用户的所有程序优先级。等级范围为[-20,19]。同样仅系统管理员可以拉高优先级。nice在进程拉起时调整,renice在进程执行时调整。 

使用场景:一个紧急进程,需要更多CPU资源时,可以拉低之前运行进程的优先级。

Linux常用命令三之进程及任务管理命令