Linux运维笔记之『进程管理』

      所谓Linux的进程,就是正在执行中的程序。当一个程序或命令执行时,执行用户的权限、属性及程序的代码都会被载入内存当中,并且分配到一个PID,即进程ID。

      查看进程和杀死进程,是运维人员常用的判断服务器健康状态的手段。比如查看一个进程CPU占用率、内存占用率过高时,就要做出判断这个进程是否是正常进程,如果是正常应用的进程,那么说明服务器已不能满足该应用的需要,需要升级服务器或者搭建集群进行优化。如果判断为是有人利用漏洞入驻的非法进程,那么就要想办法连根拔起,杀死进程。

1、查看进程

      查看进程的方式主要分为三种:ps命令(静态)、top命令(动态)、pstree命令(进程树)。

  1.1、 ps命令

  •       ps aux 命令:查看系统中所有的进程:(使用BSD操作系统格式,注意没有 “-” ) 

      参数说明: 

      

  •       ps -le 命令:也可查看系统中所有的进程,而且还能看到进程的父进程的PID和进程优先级:  

       

      参数说明:

       

      ps -l 命令:不想查看所有进程,只查看当前登录产生的进程使用此命令即可:

   1.2、top命令

  •       执行 top 命令结果如下:

      参数说明:

      第一行:任务队列信息

      

      第二行:进程统计信息 

      

      第三行:CPU信息

       

      第四行:物理内存信息

       

      第五行:交换分区信息

       

      第六行开始:进程列表

        

  •       top命令的一些附带参数:

      

  •       top命令在交互模式下(进程列表)可以执行的命令: 

      

   1.3、pstree命令

  •       执行 pstree 命令结果如下:(如下图,YDService——12*[{YDService}] 代表有12个YDService子进程存在)

      

  •       pstree命令附带参数:

      

 2、杀死进程

  2.1、kill命令

  •       可通过 kill PID 命令杀死进程 或  kill -9 PID 命令强制杀死进程,如下杀死redis进程:

      

  2.2、killall命令

  •       可通过 killall 进程名 命令杀死一类进程,如下又杀死redis进程:

      

  •        killall 命令附带参数:

      

      如下查看登录系统的sshd进程有3个,第一个为sshd服务进程不能杀死,下面两个为远程终端,此时我们可以用 killall -i 命令杀死第二个终端,杀死后终端掉线:

       

       

  2.3、pkill命令

  •        可通过 pkill 进程名 命令杀死一类进程,如下还杀死redis进程:

      

  •        killall 命令附带参数: 

      

      如下使用 w 命令 查询当前有两个登录用户,可使用 pkill -9 -t 用户终端号 强制踢出其中一个用户:

      

3、进程的优先级

      可通过修改ps -le命令结果中的“NI”值(Nice)来调整进程的优先级,NI值越小,PRI值就会降的越低,该进程就越优先被CPU处理。关于NI设置的注意事项:

      

  3.1、nice命令 

      可使用 nice -n NI值 进程执行命令 给新执行的命令直接赋予NI值,如下:(不能修改已存在进程的NI值)

nice -n -5 service httpd start

  3.2、renice命令

      可使用 renice NI值 PID 修改已存在进程的NI值,如下:

renice -10 2137
发布了109 篇原创文章 · 获赞 169 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/msllws/article/details/104192294