linux 进程异常,一种Linux系统下实时监控进程异常的方法及装置与流程

da02b7eb37e29a359bb6089d1fa3c674.gif

本发明涉及数据通信领域,具体涉及一种Linux系统下实时监控进程异常的方法及装置。

背景技术:

目前,大多数的进程监控系统,都是被监控进程主动发起的信号,然后监控进程根据不同的信号做出不同的动作,因此,监控进程属于被动接受;由此而生的就容易出现一个问题,如果被监控进程出现死循环或者其它异常现象,导致通信阻塞,被监控进程不能发出信号,监控进程不能及时做出响应,导致系统出现异常。

技术实现要素:

本发明的目的在于,为解决上述技术问题,提供一种能实时的检测进程是否出现异常的Linux系统下实时监控进程异常的方法及装置。

为解决上述技术问题,本发明采用如下的技术方案:

本发明提供一种Linux系统下实时监控进程异常的方法,包括如下步骤:

监控进程在被监控进程启动以及监控进程进行第一监控步骤和第二监控步骤后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控步骤包括周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控步骤包括周期检测所述第一监控步骤中的检测值,并判断所述检测值是否有变化。

如前述的Linux系统下实时监控进程异常的方法,所述第一监控步骤具体包括:

A、在监控进程给被监控进程发送的通信数据后,所述被监控进程进行一遍主业务逻辑处理,如果系统正常,则监控进程收到被监控进程的响应,如果被监控进程出现异常,则监控进程无法收到响应数据;

B、监控进程接收到被监控进程的响应后,检测值加一;如果被监控进程出现异常,则监控进程的检测值保持不变;

C、所述监控进程在等待n秒后,循环执行步骤A。

如前述的Linux系统下实时监控进程异常的方法,所述第二监控步骤具体为:

a、检测第一监控步骤中的检测值,如果上次检测值和本次检测值相同,进入步骤b,如果上次检测值和本次检测值不相同,直接进入步骤c;m为检测周期,大于等于2;

b、所述监控进程主动结束掉被监控进程,重新启动被监控进程;

c、在等待n*m秒后,回到步骤a,循环执行第二监控步骤。

本发明还提供一种Linux系统下实时监控进程异常的装置,包括:

通信单元:用于使监控进程在被监控进程启动以及监控进程启动第一监控单元和第二监控单元后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控单元用于周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控单元用于周期检测所述第一监控单元中的检测值,并判断所述检测值是否有变化。

如前述的Linux系统下实时监控进程异常的装置,所述第一监控单元具体包括:

响应单元:用于在第一监控单元给被监控进程发送的通信数据后,所述被监控进程进行一遍主业务逻辑处理,如果系统正常,则第一监控单元收到被监控进程的响应,如果被监控进程出现异常,则第一监控单元无法收到响应数据,执行检测值计算单元;

检测值计算单元:用于在监控进程接收到被监控进程的响应后,检测值加一;如果被监控进程出现异常,则第一监控单元的检测值保持不变;

第一循环单元:用于在所述第一监控单元等待n秒后,重新回到并执行通信及响应单元。

如前述的Linux系统下实时监控进程异常的装置,所述第二监控单元包括:

检测值探测单元:用于检测第一监控单元中的检测值,如果上次检测值和本次检测值相同,进入进程重启单元,如果上次检测值和本次检测值不相同,直接进入执行第二循环单元,m为检测周期,大于等于2;

进程重启单元:用于第二监控单元主动结束掉被监控进程,重新启动被监控进程;

第二循环单元:用于使所述第二监控单元在等待n*m秒后,回到检测值探测单元,循环执行第二监控单元。

与现有技术相比,本发明通过修改监控进程被动接受被监控进程信号的方式为监控进程主动探测被监控进程的状态,执行相应的动作,从而能够在被监控进程出现死循环或者其它异常现象时,在不影响监控进程的通信请求的情况下,监控进程能立即发现问题,重启被监控进程,使正在运行的系统迅速恢复正常。

附图说明

图1为本发明中一种实施例方法流程示意图;

图2为本发明中另一种实施例方法流程示意图;

图3为本发明中一种实施例中装置结构示意图;

图4为本发明中另一种实施例中装置结构示意图。

下面结合附图和具体实施方式对本发明作进一步的说明。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

本发明实施例1,如图1所示,本发明提供一种Linux系统下实时监控进程异常的方法,包括如下步骤:

监控进程在被监控进程启动以及监控进程进行第一监控步骤和第二监控步骤后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控步骤包括周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控步骤包括周期检测所述第一监控步骤中的检测值,并判断所述检测值是否有变化。

本发明实施例2,如图2所示,本发明提供一种Linux系统下实时监控进程异常的方法,包括如下步骤:

监控进程在被监控进程启动以及监控进程进行第一监控步骤和第二监控步骤后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控步骤包括周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控步骤包括周期检测所述第一监控步骤中的检测值,并判断所述检测值是否有变化。

如前述的Linux系统下实时监控进程异常的方法,所述第一监控步骤具体包括:

A、在监控进程给被监控进程发送的通信数据后,所述被监控进程进行一遍主业务逻辑处理,如果系统正常,则监控进程收到被监控进程的响应,如果被监控进程出现异常,则监控进程无法收到响应数据;

B、监控进程接收到被监控进程的响应后,检测值加一;如果被监控进程出现异常,则监控进程的检测值保持不变;

C、所述监控进程在等待n秒后,循环执行步骤A。

如前述的Linux系统下实时监控进程异常的方法,所述第二监控步骤具体为:

a、检测第一监控步骤中的检测值,如果上次检测值和本次检测值相同,进入步骤b,如果上次检测值和本次检测值不相同,直接进入步骤c;m为检测周期,大于等于2;

b、所述监控进程主动结束掉被监控进程,重新启动被监控进程;

c、在等待n*m秒后,回到步骤a,循环执行第二监控步骤。

如图3所示,本发明提供一种Linux系统下实时监控进程异常的装置,包括:

通信单元1:用于使监控进程在被监控进程启动以及监控进程启动第一监控单元2和第二监控单元3后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控单元2用于周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控单元3用于周期检测所述第一监控单元2中的检测值,并判断所述检测值是否有变化。

如图4所示,本发明还提供一种Linux系统下实时监控进程异常的装置,包括:

通信单元1:用于使监控进程在被监控进程启动以及监控进程启动第一监控单元2和第二监控单元3后,与被监控进程开始进行数据通信,并接受被监控进程对通信数据的监控;

所述第一监控单元2用于周期检测被监控进程是否响应,发送通信数据给被监控进程并获得检测值;

所述第二监控单元3用于周期检测所述第一监控单元2中的检测值,并判断所述检测值是否有变化。

所述第一监控单元具体包括:

响应单元4:用于在第一监控单元2给被监控进程发送的通信数据后,所述被监控进程进行一遍主业务逻辑处理,如果系统正常,则第一监控单元2收到被监控进程的响应,如果被监控进程出现异常,则第一监控单元2无法收到响应数据,执行检测值计算单元;

检测值计算单元5:用于在监控进程接收到被监控进程的响应后,检测值加一;如果被监控进程出现异常,则第一监控单元2的检测值保持不变;

第一循环单元6:用于在所述第一监控单元2等待n秒后,重新回到并执行通信及响应单元。

所述第二监控单元包括:

检测值探测单元7:用于检测第一监控单元2中的检测值,如果上次检测值和本次检测值相同,进入进程重启单元8,如果上次检测值和本次检测值不相同,直接进入执行第二循环单元9,m为检测周期,大于等于2;

进程重启单元8:用于第二监控单元3主动结束掉被监控进程,重新启动被监控进程;

第二循环单元9:用于使所述第二监控单元3在等待n*m秒后,回到检测值探测单元7,循环执行第二监控单元3。

本发明一种方法的实施步骤如下:

步骤1:搭建Linux系统环境,把监控进程、被监控进程放到该环境中;

步骤2:启动被监控进程,使用socket监听来自监控进程的数据;

步骤3:启动监控进程,分别启动两个线程,处理不同业务;

步骤4:第一监控进程启动后,每隔1秒向被监测进程发送探测信息,如有返回,对检测值加1;

步骤5:第二监控进程启动后,每隔5秒判断一次检测值;

步骤6:如果相邻两次的检测值相同,则重启被监控进程,不相同,则不做处理。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值