CN106874126A - 一种软件开发中主进程异常检测方法 - Google Patents
一种软件开发中主进程异常检测方法 Download PDFInfo
- Publication number
- CN106874126A CN106874126A CN201710060373.1A CN201710060373A CN106874126A CN 106874126 A CN106874126 A CN 106874126A CN 201710060373 A CN201710060373 A CN 201710060373A CN 106874126 A CN106874126 A CN 106874126A
- Authority
- CN
- China
- Prior art keywords
- host process
- finger daemon
- software development
- response
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Abstract
本发明公开一种软件开发中主进程异常检测方法,步骤是:主进程在启动的同时启动守护进程,并创建唯一的全局互斥体;守护进程定时检测全局互斥体是否存在,不存在则重新启动主进程,存在则定时向主进程发送消息,询问主进程的工作状态,并判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,守护进程杀掉主进程,并重新启动主进程。此方法不但可以保证主进程退出时立即重启主进程,更可以解决主进程的线程挂起或运行异常导致无法正常工作的问题。
Description
技术领域
本发明属于计算机数据处理技术领域,特别涉及一种软件开发中进程异常的检测方法。
背景技术
软件开发中经常需要维持某个进程(比如服务器进程)长期稳定地工作,但是不可避免地经常会出现进程异常退出的问题。为了解决这个问题,目前软件开发时采用的方法是利用一个守护进程一直看护主进程,如图1所示,守护进程定时扫描主进程是否存在,如果主进程不存在,就重新启动主进程。
但是,目前的看护方式存在着不足,如果主进程不是退出,而是线程挂起(程序死掉)或运行异常,守护进程认为程序没有退出,误以为还在正常工作,而实际上主进程已经异常出错,也即,现有的主进程看护方式无法解决这类实际存在的问题,有待改进。
发明内容
本发明的目的,在于提供一种软件开发中主进程异常检测方法,其不但可以保证主进程退出时立即重启主进程,更可以解决主进程的线程挂起或运行异常导致无法正常工作的问题。
为了达成上述目的,本发明的解决方案是:
一种软件开发中主进程异常检测方法,包括如下步骤:
步骤1,主进程在启动时,同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;
步骤2,守护进程定时检测主进程的全局互斥体是否存在,若存在则转步骤3,若不存在则守护进程重新启动主进程;
步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,守护进程向主进程发送消息后,判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。
上述方法中,还设定主进程在合法退出前,先杀掉守护进程。
上述步骤1中,主进程通过用户手动启动或开机自动启动。
上述步骤2中,守护进程检测主进程的全局互斥体是否存在的方法是,守护进程与主进程约定一个全局唯一的互斥体名称,守护进程验证与互斥体名称对应的全局互斥体是否存在,若存在则判定主进程存在。
上述步骤2中,检测周期为一秒。
上述步骤3中,主进程开辟专用线程与守护进程进行通信。
上述步骤3中,守护进程发送消息的发送间隔设定为一秒。
采用上述方案后,本发明中的守护进程不但监控主进程是否退出,还定时与主进程保持通讯状态。即守护进程定时向主进程发消息,询问主进程工作状态是否正常,主进程收到消息时应答守护进程,告知主进程当前工作状态。如果守护进程没收到主进程的应答消息,或主进程告诉守护进程自己当前工作状态异常,守护进程杀掉主进程并重启主进程,让主进程恢复正常工作。
附图说明
图1是现有进程看护方式的流程图;
图2是本发明的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图2所示,本发明提供一种软件开发中主进程异常检测方法,包括如下步骤:
步骤1,用户手动启动主进程,或设置开机自动启动主进程时,主进程同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;所谓的互斥体就是主进程创建的一个全局标识,互斥体随着主进程创建而创建,随着主进程关闭而关闭,并且每个互斥体都有一个唯一的名称,所以其他进程可以通过检查这个主进程对应的互斥体是否存在,来确定主进程是否有实例在运行;
步骤2,守护进程定时检测全局互斥体是否存在,从而确定主进程是否存在,在本实施例中,检测方法是:守护进程与主进程约定一个全局唯一的互斥体名称,因为互斥体随主进程创建而创建,随主进程关闭而关闭,所以守护进程只要验证跟互斥体名称对应的全局互斥体是否存在,就能确定主进程实例是否存在,并设定检测周期为一秒;若守护进程判断全局互斥体存在,则转步骤3,若守护进程判断全局互斥体不存在,表示主进程已退出,则守护进程重新启动主进程;为了避免主进程在执行完任务需要正常退出时,被守护进程看住导致无法正常退出,设定主进程在合法退出前,需要先杀掉守护进程;
步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,在本实施例中,设定发送间隔为一秒;主进程专门开辟一个线程用于与守护进程通信,以免因为处理其他业务导致与守护进程通信不及时。守护进程向主进程发送消息后,判断在设定时间内(一般设定为一秒)是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续三次都未收到主进程应答,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。
综合上述,本发明一种软件开发中主进程异常检测方法,针对目前软件开发中主进程存在,但主进程的线程挂起(程序死掉)或程序异常导致无法正常工作的情况,在守护进程与主进程之间建立通讯,以确定主进程是否处于正常工作状态。若主进程工作状态异常,守护进程杀死主进程并重新启动主进程,从而提高进程的可用性,提高进程工作效率。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (7)
1.一种软件开发中主进程异常检测方法,其特征在于包括如下步骤:
步骤1,主进程在启动时,同时启动守护进程守护其运行,并创建一个唯一的全局互斥体;
步骤2,守护进程定时检测主进程的全局互斥体是否存在,若存在则转步骤3,若不存在则守护进程重新启动主进程;
步骤3,守护进程定时向主进程发送消息,询问主进程的工作状态,守护进程向主进程发送消息后,判断在设定时间内是否收到主进程应答,若收到主进程工作状态正常的应答,表示主进程工作状态正常,守护进程继续保持定时询问;若在设定时间内未收到主进程应答,继续定时向主进程发送询问消息,如果持续n次都未收到主进程应答,n为自然数,或收到主进程工作状态异常的应答,则认为主进程当前工作状态异常,守护进程杀掉主进程,并重新启动主进程。
2.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述方法中,还设定主进程在合法退出前,先杀掉守护进程。
3.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述步骤1中,主进程通过用户手动启动或开机自动启动。
4.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述步骤2中,守护进程检测主进程的全局互斥体是否存在的方法是,守护进程与主进程约定一个全局唯一的互斥体名称,守护进程验证与互斥体名称对应的全局互斥体是否存在,若存在则判定主进程存在。
5.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述步骤2中,检测周期为一秒。
6.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述步骤3中,主进程开辟专用线程与守护进程进行通信。
7.如权利要求1所述的一种软件开发中主进程异常检测方法,其特征在于:所述步骤3中,守护进程发送消息的发送间隔设定为一秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060373.1A CN106874126A (zh) | 2017-01-24 | 2017-01-24 | 一种软件开发中主进程异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710060373.1A CN106874126A (zh) | 2017-01-24 | 2017-01-24 | 一种软件开发中主进程异常检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874126A true CN106874126A (zh) | 2017-06-20 |
Family
ID=59159274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710060373.1A Pending CN106874126A (zh) | 2017-01-24 | 2017-01-24 | 一种软件开发中主进程异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874126A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766218A (zh) * | 2017-10-12 | 2018-03-06 | 广东欧珀移动通信有限公司 | 系统优化方法、装置、存储介质及终端设备 |
CN109446034A (zh) * | 2018-10-11 | 2019-03-08 | 广州酷狗计算机科技有限公司 | 上报崩溃事件的方法、装置、计算机设备及存储介质 |
CN111898158A (zh) * | 2020-07-23 | 2020-11-06 | 百望股份有限公司 | 一种ofd文档的加密方法 |
CN109769001B (zh) * | 2019-03-19 | 2022-02-11 | 中信梧桐港供应链管理有限公司 | 一种物联网数据传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601477A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 用于自主自适应互斥体的方法和系统 |
CN1904852A (zh) * | 2006-08-01 | 2007-01-31 | 西安西电捷通无线网络通信有限公司 | 一种计算机应用程序的监控及异常处理方法 |
CN102103676A (zh) * | 2011-02-28 | 2011-06-22 | 南京邮电大学 | 一种基于进程间继承关系的爪哇程序进程守护方法 |
CN104077199A (zh) * | 2014-06-06 | 2014-10-01 | 中标软件有限公司 | 基于共享磁盘的高可用集群的隔离方法和系统 |
-
2017
- 2017-01-24 CN CN201710060373.1A patent/CN106874126A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601477A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 用于自主自适应互斥体的方法和系统 |
CN1904852A (zh) * | 2006-08-01 | 2007-01-31 | 西安西电捷通无线网络通信有限公司 | 一种计算机应用程序的监控及异常处理方法 |
CN102103676A (zh) * | 2011-02-28 | 2011-06-22 | 南京邮电大学 | 一种基于进程间继承关系的爪哇程序进程守护方法 |
CN104077199A (zh) * | 2014-06-06 | 2014-10-01 | 中标软件有限公司 | 基于共享磁盘的高可用集群的隔离方法和系统 |
Non-Patent Citations (1)
Title |
---|
中国生物医学工程学会: "《中国生物医学工程学会第六次会员代表大会暨学术会议 论文摘要汇编》", 30 April 2004, 中国生物医学工程学会 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766218A (zh) * | 2017-10-12 | 2018-03-06 | 广东欧珀移动通信有限公司 | 系统优化方法、装置、存储介质及终端设备 |
CN109446034A (zh) * | 2018-10-11 | 2019-03-08 | 广州酷狗计算机科技有限公司 | 上报崩溃事件的方法、装置、计算机设备及存储介质 |
CN109446034B (zh) * | 2018-10-11 | 2022-02-18 | 广州酷狗计算机科技有限公司 | 上报崩溃事件的方法、装置、计算机设备及存储介质 |
CN109769001B (zh) * | 2019-03-19 | 2022-02-11 | 中信梧桐港供应链管理有限公司 | 一种物联网数据传输方法及系统 |
CN111898158A (zh) * | 2020-07-23 | 2020-11-06 | 百望股份有限公司 | 一种ofd文档的加密方法 |
CN111898158B (zh) * | 2020-07-23 | 2023-09-26 | 百望股份有限公司 | 一种ofd文档的加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874126A (zh) | 一种软件开发中主进程异常检测方法 | |
CN100389404C (zh) | 一种计算机应用程序的监控及异常处理方法 | |
EP3142011A1 (en) | Anomaly recovery method for virtual machine in distributed environment | |
CN103491134B (zh) | 一种监控容器的方法、装置与代理服务系统 | |
CN107943603B (zh) | 一种运行状态检测方法、检测电路及电子设备 | |
US7734956B2 (en) | Process management system | |
CN109361542A (zh) | 客户端的故障处理方法、装置、系统、终端和服务器 | |
CN100587669C (zh) | 用于对计算机的自动技术支持的方法和系统 | |
CN109324959B (zh) | 一种自动转移数据的方法、服务器及计算机可读存储介质 | |
CN107357694A (zh) | 开机自检过程中错误事件汇报系统及其方法 | |
CN112506702A (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN111767173A (zh) | 网络设备数据处理方法、装置、计算机设备和存储介质 | |
CN101771563A (zh) | 网络服务程序的监控方法 | |
CN111400104A (zh) | 数据同步方法及装置、电子设备、存储介质 | |
US20170318483A1 (en) | Self-recovery method and device after disconnection of base station | |
CN110445932B (zh) | 异常掉卡处理方法、装置、存储介质以及终端 | |
CN103580941A (zh) | 网络看门狗及其实现方法 | |
CN104158843A (zh) | 分布式文件存储系统的存储单元失效检测方法及装置 | |
CN101557307B (zh) | 调度自动化系统应用状态管理方法 | |
CN104268026B (zh) | 嵌入式系统的监控管理方法和装置 | |
CN117149482A (zh) | 一种对线程状态进行检测的方法和装置、电子设备、介质 | |
CN107179911B (zh) | 一种重启管理引擎的方法和设备 | |
CN109947576B (zh) | 一种虚拟机内部代理程序管理的方法 | |
CN111221683A (zh) | 数据中心交换机双flash热备份方法、系统、终端及存储介质 | |
CN106412088A (zh) | 一种数据同步方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |