CN106874126A - 一种软件开发中主进程异常检测方法 - Google Patents

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

Info

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
Application number
CN201710060373.1A
Other languages
English (en)
Inventor
邱志斌
吴炜斌
涂高元
郭永兴
陆云燕
陈雅贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XIAMEN TIPRAY TECHNOLOGY Co Ltd
Original Assignee
XIAMEN TIPRAY TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XIAMEN TIPRAY TECHNOLOGY Co Ltd filed Critical XIAMEN TIPRAY TECHNOLOGY Co Ltd
Priority to CN201710060373.1A priority Critical patent/CN106874126A/zh
Publication of CN106874126A publication Critical patent/CN106874126A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task 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中,守护进程发送消息的发送间隔设定为一秒。
CN201710060373.1A 2017-01-24 2017-01-24 一种软件开发中主进程异常检测方法 Pending CN106874126A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中标软件有限公司 基于共享磁盘的高可用集群的隔离方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
中国生物医学工程学会: "《中国生物医学工程学会第六次会员代表大会暨学术会议 论文摘要汇编》", 30 April 2004, 中国生物医学工程学会 *

Cited By (6)

* Cited by examiner, † Cited by third party
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