一种软件开发中主进程异常检测方法技术

技术编号:15690719 阅读:162 留言:0更新日期:2017-06-24 03:20
本发明专利技术公开一种软件开发中主进程异常检测方法,步骤是:主进程在启动的同时启动守护进程,并创建唯一的全局互斥体;守护进程定时检测全局互斥体是否存在,不存在则重新启动主进程,存在则定时向主进程发送消息,询问主进程的工作状态,并判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,守护进程杀掉主进程,并重新启动主进程。此方法不但可以保证主进程退出时立即重启主进程,更可以解决主进程的线程挂起或运行异常导致无法正常工作的问题。

A master process anomaly detection method in software development

The anomaly detection method, the invention discloses a software development process is the main process of the main steps: at the start of the start at the same time daemon, and create a global mutex only; daemon timing detection global mutex if there does not exist, then restart the main process, the main process is time to send a message to ask the main process of the working state of the main process and determine whether the received response within a set time, if the received response the main process of the normal working condition, the daemon to keep asking if the timing; within a set time has not received the master process response, continue to send a query message timing master process, if the last n have not received the master process in response, n is a natural number, or receive the main process of working state of abnormal response, daemon kill and restart the main process, the main process. This method can not only ensure that the main process exits, it will restart the main process immediately, but also can solve the problem that the thread of the main process hangs or runs abnormally, which can not work properly.

【技术实现步骤摘要】
一种软件开发中主进程异常检测方法
本专利技术属于计算机数据处理
,特别涉及一种软件开发中进程异常的检测方法。
技术介绍
软件开发中经常需要维持某个进程(比如服务器进程)长期稳定地工作,但是不可避免地经常会出现进程异常退出的问题。为了解决这个问题,目前软件开发时采用的方法是利用一个守护进程一直看护主进程,如图1所示,守护进程定时扫描主进程是否存在,如果主进程不存在,就重新启动主进程。但是,目前的看护方式存在着不足,如果主进程不是退出,而是线程挂起(程序死掉)或运行异常,守护进程认为程序没有退出,误以为还在正常工作,而实际上主进程已经异常出错,也即,现有的主进程看护方式无法解决这类实际存在的问题,有待改进。
技术实现思路
本专利技术的目的,在于提供一种软件开发中主进程异常检测方法,其不但可以保证主进程退出时立即重启主进程,更可以解决主进程的线程挂起或运行异常导致无法正常工作的问题。为了达成上述目的,本专利技术的解决方案是:一种软件开发中主进程异常检测方法,包括如下步骤:步骤1,主进程在启动时,同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;步骤2,守护进程定时检测主进程的全局互斥体是否存在,若存在则转步骤3,若不存在则守护进程重新启动主进程;步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,守护进程向主进程发送消息后,判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。上述方法中,还设定主进程在合法退出前,先杀掉守护进程。上述步骤1中,主进程通过用户手动启动或开机自动启动。上述步骤2中,守护进程检测主进程的全局互斥体是否存在的方法是,守护进程与主进程约定一个全局唯一的互斥体名称,守护进程验证与互斥体名称对应的全局互斥体是否存在,若存在则判定主进程存在。上述步骤2中,检测周期为一秒。上述步骤3中,主进程开辟专用线程与守护进程进行通信。上述步骤3中,守护进程发送消息的发送间隔设定为一秒。采用上述方案后,本专利技术中的守护进程不但监控主进程是否退出,还定时与主进程保持通讯状态。即守护进程定时向主进程发消息,询问主进程工作状态是否正常,主进程收到消息时应答守护进程,告知主进程当前工作状态。如果守护进程没收到主进程的应答消息,或主进程告诉守护进程自己当前工作状态异常,守护进程杀掉主进程并重启主进程,让主进程恢复正常工作。附图说明图1是现有进程看护方式的流程图;图2是本专利技术的流程图。具体实施方式以下将结合附图,对本专利技术的技术方案进行详细说明。如图2所示,本专利技术提供一种软件开发中主进程异常检测方法,包括如下步骤:步骤1,用户手动启动主进程,或设置开机自动启动主进程时,主进程同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;所谓的互斥体就是主进程创建的一个全局标识,互斥体随着主进程创建而创建,随着主进程关闭而关闭,并且每个互斥体都有一个唯一的名称,所以其他进程可以通过检查这个主进程对应的互斥体是否存在,来确定主进程是否有实例在运行;步骤2,守护进程定时检测全局互斥体是否存在,从而确定主进程是否存在,在本实施例中,检测方法是:守护进程与主进程约定一个全局唯一的互斥体名称,因为互斥体随主进程创建而创建,随主进程关闭而关闭,所以守护进程只要验证跟互斥体名称对应的全局互斥体是否存在,就能确定主进程实例是否存在,并设定检测周期为一秒;若守护进程判断全局互斥体存在,则转步骤3,若守护进程判断全局互斥体不存在,表示主进程已退出,则守护进程重新启动主进程;为了避免主进程在执行完任务需要正常退出时,被守护进程看住导致无法正常退出,设定主进程在合法退出前,需要先杀掉守护进程;步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,在本实施例中,设定发送间隔为一秒;主进程专门开辟一个线程用于与守护进程通信,以免因为处理其他业务导致与守护进程通信不及时。守护进程向主进程发送消息后,判断在设定时间内(一般设定为一秒)是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续三次都未收到主进程应答,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。综合上述,本专利技术一种软件开发中主进程异常检测方法,针对目前软件开发中主进程存在,但主进程的线程挂起(程序死掉)或程序异常导致无法正常工作的情况,在守护进程与主进程之间建立通讯,以确定主进程是否处于正常工作状态。若主进程工作状态异常,守护进程杀死主进程并重新启动主进程,从而提高进程的可用性,提高进程工作效率。以上实施例仅为说明本专利技术的技术思想,不能以此限定本专利技术的保护范围,凡是按照本专利技术提出的技术思想,在技术方案基础上所做的任何改动,均落入本专利技术保护范围之内。本文档来自技高网...
一种软件开发中主进程异常检测方法

【技术保护点】
一种软件开发中主进程异常检测方法,其特征在于包括如下步骤:步骤1,主进程在启动时,同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;步骤2,守护进程定时检测主进程的全局互斥体是否存在,若存在则转步骤3,若不存在则守护进程重新启动主进程;步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,守护进程向主进程发送消息后,判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。

【技术特征摘要】
1.一种软件开发中主进程异常检测方法,其特征在于包括如下步骤:步骤1,主进程在启动时,同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;步骤2,守护进程定时检测主进程的全局互斥体是否存在,若存在则转步骤3,若不存在则守护进程重新启动主进程;步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,守护进程向主进程发送消息后,判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。2.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述方法中,还设定...

【专利技术属性】
技术研发人员:邱志斌吴炜斌涂高元郭永兴陆云燕陈雅贤
申请(专利权)人:厦门天锐科技股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1