设为首页 收藏本站
查看: 1186|回复: 0

[经验分享] centos系统之进程管理

[复制链接]

尚未签到

发表于 2019-4-17 18:10:34 | 显示全部楼层 |阅读模式
  为了更好地了解和控制Linux服务器的有序运行,需要管理员熟悉进程管理和计划任务设置的相关操作,以完成各种运行维护任务。
  1、进程和程序的概念
(1)程序:保存在硬盘、光盘等介质中的可执行代码和数据,静态保存的代码
(2)进程:在CPU及内存中运行的程序代码,动态执行的代码。
进程有程序产生,是动态的,是一个运行着的、要占用系统运行资源的程序。
每个进程还可以有许多子进程;
未区分不同的进程,系统给每一个进程都分配了一个唯一的进程标识符(称PID)。
  2、进程和程序的区别
(1)程序是静态概念,作为一种软件资源长期保存;而进程是程序的执行过程,是动态概念,有一定的生命周期,是动态产生和消亡的。
(2)程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。
  3、父进程与子进程
(1)子进程是由一个进程所产生的进程,而产生这个子进程的进程叫做父进程;
(2)在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境
(3)父进程终止,那么子进程也随之自然终止。
(4)进程在Linux系统中呈树状结构,初始化进程是根节点,其他的进程均有父进程。
  4、进程分类:
(1)前台进程:
在shell提示处输入命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户提示符。即在前台运行,用户在它完成之前不能执行另一个命令。
  (2)后台进程:
在shell提示处输入命令,如果后面跟着一个“&”符号,shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示符。并且这条命令与shell同步运行,即在后台运行,后台进程必然是非交互式的。
  (3)批处理进程:一个进程序列
(4)守护进程:又称为监控进程,是指那些在后台运行,并且没有控制终端的进程。
  5、进程状态
(1)就绪:进程已经分配到资源,但因为其它的进程正占用CPU,所以暂时不能运行而等待分配CPU的状态。
  (2)等待:因等待某种时间而暂时不能运行的状态。
  (3)运行:进程分配到CPU,正在处理器上运行。

  centos 5或6PID为1 的进程:init
centos 7  PID为1 的进程:systemd
  6、查看进程的命令
(1)ps  ——查看静态的进程统计信息
格式:ps   aux ;   ps  -elf
选项说明:
a: 显示所有用户的进程
u: 显示用户名和启动时间
x: 显示没有控制终端的进程
e: 显示所有进程,包括没有控制终端的进程
l:长格式显示
f:显示程序间的关系
https://s1.运维网.com/images/blog/201902/19/301f4f86bdae5b7618bc73e7e35e48d9.png
  注:
1、USER:运行进程的用户
2、PID:该进程的ID
3、%CPU:CPU占用率
4、%MEM:内存占用率
5、VSZ:该进程使用掉的虚拟内存量
6、RSS:该进程占用的实际的内存量
7、TTY:该进程在哪个终端上运行,若与终端己无关,则显示“?”。
8、STAT:该程序的状态,主要状态有
R(正在运行):进程正在运行,或者被运行
S(中断):该进程目前正在睡眠中,可被某些信息唤醒。
T(停止):该进程目前正在侦测或者停止了
Z(僵死):该进程应该已终止,但父进程却无法正常的终止他,造成僵尸进程的状态。
D:不可中断
9、START:该进程被触发启动的时间
10、TIME:该进程实际使用CPU运作的时间
11、COMMAND:该进程的实际指令

  注:
1、F:代表这个程序的旗标(flag),其中“4”代表使用者为super   user
2、S:代表这个程序的状态(STAT),与ps aux的STAT状态一致
3、UID:该进程的程序用户
4、PID:该进程的进程号
5、PPID:父进程的进程号
6、C:CPU使用的资源百分比
7、PRI:priority的缩写,优先执行权,值越小越早被执行。
8、NI:Nice值,表示进程可被执行的优先级的修正数值。
9、ADDR:内核函数,指出该进程在内存的那个部分,如果是running的进程,        
一般显示“-”
10、SZ:该进程使用掉的内存大小
11、WCHAN:该进程是否正在运行状态,“-”表示正在运行
12、TTY:该进程的终端机位置
13、TIME:使用掉的CPU时间
14、CMD:该进程的指令
  注意:ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。
  ps自定义显示字段:
pa   axo   显示字段
  (2)、top ——实时监测进程,查看系统资源使用情况以及进程排名信息

  说明:顺序为从左到右
1、第一行显示了当前时间、系统的运行时间、登录的用户数、系统的平均负载(平均负载有3个值,最近1分钟的,最近5分钟的,最近15分钟的,值越大,说明系统的负载越高)
  2、第二行显示了进程的概要信息,top命令的输出中将进程叫做任务(task),有多少进程处在:运行、休眠、停止、僵化的状态(僵化是指进程完成了,但父进程没有响应)
  3、CPU占用信息:us,用户占用率;sy,内核占用率;ni,优先级调度占用;id,空闲CPU百分比;wa,I/O等待占用;hi,硬件中断占用;st,虚拟化占用。
内存占用(Mem)信息:total,总内存空间;used,已用内存;free,空闲内存;buffers,缓存区域。
交换空间(Swap)信息:total,总交换空间;used,已用交换空间;free,空闲交换空间;cached,缓存空间
  top进程信息管理:
M——按内存的使用排序
P——按CPU使用排序
N——以PID的大小排序
R——对排序进行反转
f——自定义显示字段
1——显示所有CPU的负载
Z——显示彩色
  ——向前
top.txt   将2次铜牌信息写入到文件中
  (3)查看指定进程的PID
a、查看进程的pid 文件
b、ps  aux  |  grep  进程名
c、pgrep -l  进程名
d、pstree    查看进程树,以树状形式显示各进程之间的关系
  7、控制管理进程
使用信号控制进程
  (1) 列出系统所有支持的信号——kill -l
https://s1.运维网.com/images/blog/201902/19/c0688f8395190c75c42dc201b17383c9.png
  常用的信号:
编号信号名作用1SIGHUP重新加载配置2SIGINT键盘中断3SIGQUIT键盘退出9SIGKILL强制终止15SIGTERM终止(正常结束),默认信号18SIGCONT继续19SIGSTOP停止20SICTSTP暂停  (2)使用kill来管理进程:需要使用进程的PID号来作为对象处理。
  例子:给apache进程发信号1,15
[root@lq1 ~]# ps aux | grep http
https://s1.运维网.com/images/blog/201902/19/993e8d2cb03cc4f28f9e6559042df878.png
  [root@lq1 ~]# kill -1 7993
[root@lq1 ~]# ps aux | grep http
https://s1.运维网.com/images/blog/201902/19/5a38e85bd947b3a56a423d3384c3375a.png
  [root@lq1 ~]# kill 7993
[root@lq1 ~]# ps aux | grep http
https://s1.运维网.com/images/blog/201902/19/34311c757ad3919414fe00fdcf9edf5b.png
注:上图进程不是httpd服务进程,而是grep进程
  (3)使用killall来管理进程:可以通过进程名来管理进程
  [root@lq1 ~]# killall -1 httpd
https://s1.运维网.com/images/blog/201902/19/180663694b43365bc65323e8a292687b.png
  [root@lq1 ~]# killall httpd
https://s1.运维网.com/images/blog/201902/19/a342af3eb173cc88a53fcbf930263f03.png
(4)使用pkill命令来管理进程:可以根据进程的名称、运行该进程的用户、进程所在的终端、进程PID等来管理进程

  例子:
a、踢出一个从远处登录本机的用户
pkill   -u   用户名
  b、终止一个终端上的所有进程
pkill   -t  pts/2
  c、终止一个终端上所有进程,并结束该终端
pkill   -9   -t   pts/2
  8、进程优先级
(1)Linux进程调度及多任务
每个CPU(或CPU核心)在一个时间上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超出实际可用的CPU及核心数量。Linux内核进程调度程序将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象。
  (2)相对优先级nice
由于不是每个进程都与其它进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为SCHED_OTHER(也称为SCHED_NORMAL),但还有其它一些调度策略用于不同的目的。
  SCHED_OTHER调度策略运行的进程的相对优先级称为进程的nice值,可以有40中不同级别的nice值。
https://s1.运维网.com/images/blog/201902/19/49bb8edce2b5804942ddab83b800607e.png
nice值越高:表示优先级越低,容易将CPU使用量然给其它进程
nice值越低:表示优先级越高,不倾向于让出CPU
  (3)查看进程的nice基本
使用top查看nice级别:
NI:实际nice级别
PR:将nice级别显示为映射到更大优先级对列,-20映射到0,+19映射到39
  使用ps查看nice级别:
TS表示该进程使用的调度策略为SCHED_OTHER
nice:实际nice级别
  (4)启动具有不停nice级别的进程
启动进程时,通常会继承父进程的nice级别,默认为0
nice -n nice值  进程
  (5)更改现有进程的nice级别
a、使用top更改nice级别
r   调整进程的优先级(Nice  Level)
  b、使用shell更改nice几倍
renice  nice值  PID
https://s1.运维网.com/images/blog/201902/19/2ebfbd0182e989dee723cf1d5658bc6b.png
  9、后台进程控制
(1)、作业控制——jobs
作业控制是一个命令行功能,允许一个shell实例赖云霞和管理多个命令。
如果没有作业控制,父进程fork()一个子进程后,将sleeping,知道子进程退出。
使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让shell可以在子进程运行期间接收其它命令。
  foreground——前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘发生的输入和信号,并允许从终端读取或写入到终端。
  backgroup——后台进程没有控制终端,它不需要终端的交互。
  例子:
[root@lq1 ~]# sleep  10000  &      #运行程序时,让其在后台执行
https://s1.运维网.com/images/blog/201902/19/f5a3227b239c90af3976d633ef76e14d.png
  (2)、jobs——查看后台进程列表
[root@lq1 ~]# jobs -l
https://s1.运维网.com/images/blog/201902/19/89ef652184391744885ca9794cf0e38a.png
  (3)、fg——将后台进程调至前台运行
格式:fg   后台进程列表序号
  (4)、bg——将后台停止的进程调为后台运行
格式:bg  后台进程列表序号
  案例:端网后,重新连接,恢复之前终端中的操作
yum install  -y   screen
  screen  -S 自定义名称    #定义恢复名称
  断开,重新连接
输入screen  -list    恢复列表
https://s1.运维网.com/images/blog/201902/19/05cbefdf7fb520e2e4446923fc7d3b24.png
  screen  -r   8193    #恢复之前操作
https://s1.运维网.com/images/blog/201902/19/77d6113b90f83ac56edc78899b48963c.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-828455-1-1.html 上篇帖子: centos系统之磁盘配额 下篇帖子: centos配置双卡外网问题处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表