美文网首页Linux
Linux进程管理

Linux进程管理

作者: 若兮缘 | 来源:发表于2019-03-04 22:20 被阅读29次

进程管理

进程简介

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

其实进程就是表示正在运行的程序,有些进程可能很快,一执行就消失了,比如执行 ls 命令。有些进程会常驻在内存中,比如系统对外提供的Apache服务。在linux中,所以可执行的程序都能产生至少一个进程,有些程序可能产生多个进程。

进程管理作用
  • 判断服务器健康状态
  • 查看系统中所有进程
  • 杀死进程

很多习惯用windows的小伙伴可能会觉得进程管理最主要就是可以用来杀死进程,其实不然。在服务器管理中,进程管理主要是用来判断服务器的健康状态的,在系统还未死机但是CPU和内存占有率很高的情况下人为介入将异常状态处理掉,让服务器恢复正常状态。

进程查看命令-ps

ps aux

查看系统中所有进程,使用BSD操作系统格式

ps -le / ps -ef

查看系统中所有进程,使用Linux标准命令格式/全格式

常用选项
ps命令输出

注意:init进程的PID固定为1,是系统当中启动的第一个进程,是所有进程的父进程

stat输出列

stat代表进程状态,常见的状态有如下一些:

ps命令演示

查看进程树-pstree

pstree [选项]

-p: 显示进程的PID(显示所有子进程)
-u: 显示进程的所属用户

进程查看命令-top

top是一个查看系统健康状态命令,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,top命令默认每三秒会刷新一次,默认按照CPU占有率进行排序显示。

top的常用选项,以及在top命令的交互模式当中可以执行的命令如下

top命令演示

top命令的输出结果我们重点关注前5行信息,后面的进程相关信息和ps命令是差不多的

top输出内容第一行:任务队列信息

这里说一下不是系统的运行时间越长就越好,有计划的重启,是维护服务器的基本原则。服务器运行时间过长,出现故障的可能性就会越大。

top输出内容第二行:进程信息
top输出内容第三行:CPU信息
top输出内容第四行:物理内存信息
top输出内容第五行:交换分区(swap)信息
使用说明
  • top命令通常看的参数为load average,cpu空闲率,内存空闲率,swap空闲率
  • top命令比较占用系统资源,如果不使用必须及时退出
  • top -b -n 1 > /root/top.log #执行top命令一次并写入文件,可以看到所有进程情况

杀死进程

kill命令

语法:kill [信号] 进程ID(PID)
kill -1 进程ID #重启进程(平滑重启)
kill -9 进程ID #强制杀死进程

进程信号

kill -l #查看可用的进程信号

killall命令

killall [选项][信号] 进程名 #按照进程名杀死进程
选项:
-i: 交互式,询问是否要杀死某个进程
-I: 忽略进程名的大小写
killall -9 httpd #杀死所有的apache进程
killall -i -9 httpd #每杀死一个进程询问一次,按y同意

pkill命令

pkill [选项][信号] 进程名 #按照进程名终止进程
-t 终端号: 按照终端号踢出用户(只有超级用户可以剔除其它用户)
pkill -9 -t pts/1 #强制杀死从pts/1虚拟终端登录的进程
建议踢除其他用户前先使用w命令查询本机已经登录的用户,避免误踢

修改进程优先级

Linux操作系统是一个多用户、多任务的操作系统,Linux系统中通常运行着非常多的进程。但是CPU在同一个时钟周期内只能运算一个指令,进程优先级决定了每个进程处理的先后顺序。

其实优先级管理对于一般的系统管理来讲是基本用不到,只需要了解即可,如果是做内核编程相关优先级就相对比较重要了。

查看优先级

ps -le #可以显示所有进程的优先级
PRI代表Priority,NI代表Nice。这两个值都是优先级,数字越小代表该进程优先级越高

修改NI值注意事项
  1. NI的值的范围是-20到19
  2. 普通用户调整NI值的范围是0到19,而且只能调整自己的进程
  3. 普通用户只能调高NI值,而不能降低,如原本NI值为0,则只能调整为大于0
  4. root用户才能设定进程NI值为负值,而且可以调整任何用户的进程
  5. PRI(最终值) = PRI(原始值) + NI
  6. 用户只能修改NI的值,不能直接修改PRI
nice命令

nice [选项] 命令 #nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值
-n NI值: 给命令赋予NI值
nice -n -5 service httpd start #启动Apache服务并修改其NI值为-5

renice命令

renice [优先级] PID #renice命令是修改已经存在进程的NI值的命令
例如:renice -10 2125

相关文章

网友评论

    本文标题:Linux进程管理

    本文链接:https://www.haomeiwen.com/subject/gxowuqtx.html