CN109710441A - 一种软件看门狗、电子设备及计算机存储介质 - Google Patents

一种软件看门狗、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN109710441A
CN109710441A CN201811562888.2A CN201811562888A CN109710441A CN 109710441 A CN109710441 A CN 109710441A CN 201811562888 A CN201811562888 A CN 201811562888A CN 109710441 A CN109710441 A CN 109710441A
Authority
CN
China
Prior art keywords
application program
dog
hello
period
electronic equipment
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
CN201811562888.2A
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.)
Beijing Dongtu Jinyue Technology Co Ltd
Original Assignee
Beijing Dongtu Jinyue 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 Beijing Dongtu Jinyue Technology Co Ltd filed Critical Beijing Dongtu Jinyue Technology Co Ltd
Priority to CN201811562888.2A priority Critical patent/CN109710441A/zh
Publication of CN109710441A publication Critical patent/CN109710441A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软件看门狗、电子设备及计算机存储介质,用以解决现有技术中存在的在设备中的应用程序发生故障后,不能在不影响设备整体使用的情况下及时恢复故障程序的正常运行的技术问题。该软件看门狗包括:按照硬件看门狗电路要求的周期定期向所述硬件看门狗发喂狗消息;在当前轮询周期内,判断所述每个应用程序在对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启任一个应用程序。

Description

一种软件看门狗、电子设备及计算机存储介质
技术领域
本发明涉及通信领域,尤其是涉及一种软件看门狗、电子设备及计算机存储介质。
背景技术
在设备运行中,为了保障设备功能的正常执行,通常会在设备中使用硬件看门狗,当设备中的应用程序因为某种原因而不能正常工作时,应用程序将停止喂狗,从而导致看门狗中的复位芯片复位,使设备重启,以重新运行设备中的应用程序、恢复设备功能。
由于采用硬件看门狗的方式需要重启整个设备,而对于大型设备甚至普通的交换机,它们的重启时间都是比较长的。且随着软件程序的模块化,往往某一个模块的故障并不能触发看门狗咬死动作,但这时的设备已经不能正常运行,这将造成设备功能不能及时恢复的问题。
另外,由于网络安全设备存在大量的处理模块,且每个模块功能相对独立,而任一模块发生故障都会影响设备的功能,如果仅仅因为某一个模块发生故障而重启整个设备又将影响设备的整体使用效果。
鉴于此,在设备中的应用程序发生故障后,如何在不影响设备整体使用的情况下及时恢复故障程序的正常运行,成为一个亟待解决的技术问题。
发明内容
本发明提供一种软件看门狗、电子设备及计算机存储介质,用以解决现有技术中存在的在设备中的应用程序发生故障后,不能在不影响设备整体使用的情况下及时恢复故障程序的正常运行的技术问题。
第一方面,为解决上述技术问题,本发明实施例提供的一种软件看门狗的技术方案如下:
按照硬件看门狗电路要求的周期定期向所述硬件看门狗发喂狗消息;
在当前轮询周期内,判断每个应用程序在各自对应的喂狗周期内是否执行了喂狗;
对于任一个应用程序,若所述任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定所述任一个应用程序发生故障,执行所述任一个应用程序发生故障时的指定动作,所述任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。
通过让软件看门狗按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息,并在当前轮询周期内,判断每个应用程序在各自对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。从而让软件看门狗在发现电子设备中的任一个应用程序发生故障后,便能及时的恢复发生故障的任一个应用程序的正常运行,进而实现在不影响电子设备整体使用的情况下及时恢复故障程序的技术效果。
优选地,确定所述任一个应用程序在自己对应的喂狗周期内没有喂狗的方法,包括:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间为零,则确定所述任一个应用程序在对应的喂狗周期内没有喂狗。
优选地,确定所述任一个应用程序在自己对应的喂狗周期内已喂狗的方法,包括:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则确定所述任一个应用程序在对应的喂狗周期内已喂狗。
优选地,软件看门狗还包括:
若在所述当前轮询周期内,未接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则减少所述任一个应用程序的剩余喂狗时间;
若在所述当前轮询周期内,接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则将所述任一个应用程序的剩余喂狗时间恢复为所述任一个应用程序的最大喂狗时间。
优选地,执行发生故障时的指定动作,包括:
若所述指定动作为重启所述电子设备,则停止向硬件看门狗发送喂狗消息;
若所述指定动作为重启所述任一个应用程序,则重启所述任一个应用程序,并保持周期性的向所述硬件看门狗发送喂狗消息。
优选地,执行发生故障时的指定动作之前,还包括:
确定所述任一个应用程序的剩余喂狗时间为零之后,结束所述任一个应用程序的运行。
优选地,执行所述任一个应用程序发生故障时的指定动作之前,还包括:
从预存的配置文件中获取所述任一个应用程序发生故障时的指定动作;其中,所述配置文件中包括应用程序的名称、运行参数以及异常时执行的指定动作,所述运行参数包括应用程序的启动参数和最大喂狗时间间隔。
优选地,所述软件看门狗还包括:
在启动所述电子设备时,读取所述配置文件中的信息,并根据所述配置文件中各应用程序的配置参数启动对应的应用程序。
优选地,所述软件看门狗还包括:
在确定所述剩余喂狗时间为零或所述任一个应用程序停止运行后,生成对应的日志信息。
第二方面,本发明实施例提供了一种软件看门狗,用于监控电子设备中的多个应用程序,该软件看门狗包括:
发送单元,用于按照硬件看门狗电路要求的周期定期向所述硬件看门狗发喂狗消息;
判断单元,用于在当前轮询周期内,判断每个应用程序在各自对应的喂狗周期内是否执行了喂狗;
处理单元,用于对于任一个应用程序,若所述任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定所述任一个应用程序发生故障,执行所述任一个应用程序发生故障时的指定动作,所述任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。
优选地,所述判断单元具体用于:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间为零,则确定所述任一个应用程序在对应的喂狗周期内没有喂狗。
优选地,所述判断单元具体用于:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则确定所述任一个应用程序在对应的喂狗周期内已喂狗。
优选地,所述判断单元还用于:
若在所述当前轮询周期内,未接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则减少所述任一个应用程序的剩余喂狗时间;
若在所述当前轮询周期内,接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则将所述任一个应用程序的剩余喂狗时间恢复为所述任一个应用程序的最大喂狗时间。
优选地,所述处理单元具体用于:
若所述指定动作为重启所述电子设备,则停止向硬件看门狗发送喂狗消息;
若所述指定动作为重启所述任一个应用程序,则重启所述任一个应用程序,并保持周期性的向所述硬件看门狗发送喂狗消息。
优选地,所述处理单元还用于:
确定所述任一个应用程序的剩余喂狗时间为零之后,结束所述任一个指定应用程序的运行。
优选地,所述处理单元还用于:
从预存的配置文件中获取所述任一个应用程序发生故障时的指定动作;其中,所述配置文件中包括应用程序的名称、运行参数以及异常时执行的指定动作,所述运行参数包括应用程序的启动参数和最大喂狗时间间隔。
优选地,所述处理单元还用于:
在启动所述电子设备时,读取所述配置文件中的信息,并根据所述配置文件中各应用程序的配置参数启动对应的应用程序。
优选地,所述处理单元还用于:
在确定所述剩余喂狗时间为零或所述任一个应用程序停止运行后,生成对应的日志信息。
第三方面,本发明实施例还提供一种电子设备,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的软件看门狗。
第四方面,本发明实施例还提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面所述的软件看门狗。
通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:
在本发明提供的实施例中,通过让软件看门狗按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息,并在当前轮询周期内,判断电子设备中的每个应用程序在各自对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。从而让软件看门狗在发现电子设备中的任一个应用程序发生故障后,便能及时的恢复发生故障的任一个应用程序的正常运行,进而实现在不影响电子设备整体使用的情况下及时恢复故障程序的技术效果。由于在网络安全设备中存在大量的处理模块(即应用程序),且每个模块功能相对独立,而每个模块的故障都会影响设备处理攻击报文的能力;但是,如果仅仅因为某一个模块出现故障而重启整个设备将影响设备的整体使用效果,为了解决此问题,可以采用本发明提供的上述方案,在网络安全设备中设置上述技术方案中的软件看门狗,让软件看门狗周期性的判断各个处理模块在各自对应的喂狗周期内是否执行了喂狗,若这些处理模块中的任一个处理模块没有喂狗,则确定任一个处理模块发生了故障,然后让任一个处理模块执行在发生故障时的指定动作,以恢复任一个模块的正常运行,从而可以快速有效的发现网络安全设备中发生了故障的处理模块,并在发生故障后在发生故障的处理模块对应的范围内解决故障,从而在最小范围内解决相应的问题,使网络安全设备的整体使用不受影响。
附图说明
图1为本发明实施例提供的一种软件看门狗的工作流程图;
图2为本发明实施例提供的电子设备的系统模型框图;
图3为本发明实施例提供的一种软件看门狗的结构示意图。
具体实施方式
本发明实施列提供一种软件看门狗、电子设备及计算机存储介质,以解决现有技术中存在的在设备中的应用程序发生故障后,不能在不影响设备整体使用的情况下及时恢复故障程序的正常运行的技术问题。
本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
提供一种软件看门狗,应用于运行有多个应用程序的电子设备中,该软件看门狗的工作过程包括:按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息;在当前轮询周期内,判断每应用程序在对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启任一个应用程序。
由于在上述方案中,通过让软件看门狗按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息,并在当前轮询周期内,判断电子设备中的每个应用程序在各自对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启任一个应用程序。从而让软件看门狗在发现电子设备中的任一个应用程序发生故障后,便能及时的恢复发生故障的任一个应用程序的正常运行,进而实现在不影响电子设备整体使用的情况下及时恢复故障程序的技术效果。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
实施例一、请参考图1,本发明实施例提供一种软件看门狗,应用于电子设备中,该电子设备中运行有多个应用程序,该软件看门狗的工作过程如下。
步骤101:按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息。
步骤102:在当前轮询周期内,判断每个应用程序在各自对应的喂狗周期内是否执行了喂狗。
请参见图2,为电子设备的系统模型框图,它由配置文件、软件看门狗、硬件看门狗、应用程序1~应用程序n以及网络通信模块(各模块喂狗通信)组成。
配置文件,用于保存软件看门狗需要监控的各个应用程序的名称、运行参数以及异常时采取的指定动作。在实际使用的过程中,所有的应用程序都应在配置文件中声明。其中,运行参数主要包括应用程序的启动参数和应用程序的最大喂狗时间间隔(Time tolive,TTL);异常采取的动作,是指当应用程序在TTL耗尽之后没有喂狗的情况下采取的动作,包括三种情况:一、重启该应用程序;二、重启整个系统(即重启电子设备);三、不做任何动作。具体采用何种方式,用户可以根据应用程序在实际应用中的重要性决定。如果均采用第三种方式,则应用程序将扮演“应用启动者”的角色,不过这种方式一般不采用。
软件看门狗,用于读取配置文件中的参数,并启动相应的应用程序,这里应用程序的作用类似于Linux系统中的init进程,软件看门狗启动的各个应用程序都将成为主进程的子进程,主进程(软件看门狗)在创建子进程(应用程序)的过程中将记录各个子进程的进程ID,以供后续监控。并且,在监控的同时,软件看门狗还会按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息。
网络喂狗通信模块,用于将各个应用程序的喂狗消息传递给软件看门狗,使软件看门狗通过各应用程序的喂狗消息来检测对应的应用程序是否处于正常的运行状态。网络喂狗通信模块可以利用Linux的socket通信机制创建,并封装为库文件,各个应用程序在编辑的时候只需调用相应接口并链接库文件即可。
应用程序1~应用程序n,为在电子设备中软件看门狗需要监控的多个应用程序,软件看门狗采用轮询的方式判断每个应用程序在各自对应的喂狗周期内是否执行了喂狗,来确定每个应用程序是否发生了故障,具体的轮询周期例如可以为1s,若当前轮询周期判断应用程序1~应用程序n中的应用程序3发生了故障,则软件看门狗对应用程序3进行故障恢复,让电子设备不因应用程序3的故障而影响整体性能。
在正常情况下,应用程序1~应用程序n会按各自的喂狗周期向软件看门狗发送喂狗消息,所以通过判断电子设备中的每个应用程序是否在各自对应的喂狗周期内执行了喂狗可以确定电子设备中的每个应用程序是否发生了故障。
具体的,判断多个应用程序中的任一个应用程序在对应的喂狗周期内是否执行了喂狗,是通过判断软件看门狗是否接收到任一个应用程序的喂狗消息,以及指定应用程序的剩余喂狗时间是否为零来确定的。
具体的,确定任一个应用程序在自己对应的喂狗周期内没有喂狗可采用以下方法确定:若在当前轮询周期内没有接收到任一个应用程序的喂狗消息,且任一个应用程序的剩余喂狗时间为零,则确定任一个应用程序在对应的喂狗周期内没有喂狗。
确定任一个应用程序在自己对应的喂狗周期内已喂狗可采用以下方法确定:若当前轮询周期内没有接收到任一个应用程序的喂狗消息,且人一个应用程序的剩余喂狗时间不为零,则确定任一个应用程序在对应的喂狗周期内已喂狗。
例如,在当前轮询周期内,应用程序1~5都向软件看门狗发送了喂狗消息,使软件看门狗接收到了它们的喂狗消息,且应用程序1~5各自的剩余喂狗时间为0,则确定应用程序1~5在各自对应的喂狗周期内没有喂狗;应用程序6~10都未向软件看门狗发送喂狗消息,使软件看门狗未接收到它们的喂狗消息,且应用程序6~10各自对应的剩余喂狗时间不为0,则确定应用程序6~10在各自对应的喂狗周期内已喂狗。
若在当前轮询周期内,软件看门狗未接收到任一个应用程序的喂狗消息,且任一个应用程序的剩余喂狗时间不为零,则减少任一个应用程序的剩余喂狗时间,并依据任一个应用程序的进程ID更新任一个应用程序的TTL(剩余喂狗时间);若在当前轮询周期内,软件看门狗接收到任一个应用程序的喂狗消息,且任一个应用程序的剩余喂狗时间不为零,则将任一个应用程序的剩余喂狗时间恢复为任一个应用程序的最大喂狗时间。
例如,在电子设备中共有10个应用程序需要使用软件看门狗对它们是否发生了故障进行监测,假设软件看门狗按照1s的周期对这10个应用程序进行轮询,在当前轮询周期(如为第3个1s时)软件看门狗轮询到第3个应用程序(即任一个应用程序),通过判断第3个应用程序的剩余喂狗时间是否为零来确定第3个应用程序在它的喂狗周期内是否执行了喂狗。
若在当前轮询周期内,软件看门狗未接收到第3个应用程序的喂狗消息,且第3个应用程序的剩余喂狗时间不为零,则减少第3个应用程序的剩余喂狗时间,假设此时第3个应用程序的剩余喂狗时间为9s,减少一次喂狗时间为减少1s,则减少第3个应用程序的剩余喂狗时间后第3个应用程序的剩余喂狗时间为8s,并根据第3个应用程序的进程ID,第3个应用程序的剩余喂狗时间更新为8s;若在当前轮询周期内,软件看门狗接收到第3个应用程序的喂狗消息,且剩余喂狗时间不为零,则可以确定第3个应用程序在它的喂狗周期内执行了喂狗,此时将第3个应用程序的剩余喂狗时间(9s)恢复为第3个应用程序的最大喂狗时间(20s)。
需要理解的是,由于电子设备中的应用程序的喂狗周期,比软件看门狗轮询各个应用程序的轮询周期长,所以即使在当前轮询周期内软件看门狗未接收到任一个应用程序的喂狗消息,也不能说明任一个应用程序在其喂狗周期内就没有进行喂狗,例如任一个应用程序可能在当前轮询周期前就进行了喂狗,也可能在当前轮询周期之后会进行喂狗,所以判断任一个应用程序是否在其喂狗周期内进行了喂狗,还需要进一步判断任一个应用程序的剩余喂狗时间是否为0,若任一个应用程序的剩余喂狗时间不为零且未发送喂狗消息,则应减少任一个应用程序的剩余喂狗时间,并根据其ID进行剩余喂狗时间的更新,若任一个应用程序的剩余喂狗时间不为零且发送了喂狗消息,则确定任一个应用程序执行了喂狗,此时需将任一个应用程序的各自对应的剩余喂狗时间恢复为其对应的最大喂狗时间。
若在当前轮询周期内,任一个应用程序的剩余喂狗时间为零,则确定任一个应用程序在各自对应的喂狗周期内没有喂狗,执行步骤103。
步骤103:对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启任一个应用程序。
对于电子设备中的任一个应用程序,若该任一个应用程序在自己对应的喂狗周期内没有喂狗,便可确定任一个应用程序发生了故障,在确定任一个应用程序发生故障之后,若任一个应用程序还在运行,则结束任一个应用程序的运行,以确保任一个应用程序能被电子设备回收。之后,从预存的配置文件中获取任一个应用程序发生故障时的指定动作,并执行任一个应用程序发生故障时的指定动作;其中,任一个应用程序发生故障时的指定动作为重启电子设备或重启任一个应用程序,配置文件中包括应用程序的名称、运行参数以及异常时执行的指定动作,运行参数包括应用程序的启动参数和最大喂狗时间间隔。
具体的,执行发生故障时的指定动作,包括:若指定动作为重启电子设备,则停止向硬件看门狗发送喂狗消息;若指定动作为重启任一个应用程序,则重启任一个应用程序,并保持周期性的向硬件看门狗发送喂狗消息。
需要说明的是,在电子设备中仍然保留有硬件看门狗,软件看门狗按照硬件看门狗的要求周期性的向硬件看门狗发送喂狗消息,若电子设备中的某应用程序发生故障时设置的指定动作是重启电子设备,则通过让软件看门狗停止向硬件看门狗发送喂狗消息的方式来让电子设备重启。若电子设备中的某应用程序发生故障时设置的指定动作是重启该应用程序,则只需重启该应用程序即可,而软件看门狗依然保持周期性的向硬件看门狗发送喂狗消息。
例如,在当前轮询周期内,确定任一个应用程序发生了故障,若任一个应用程序还在运行,则软件看门狗先结束任一个应用程序的运行,让任一个应用程序不以故障的方式继续运行,之后再从配置文件中读取任一个应用程序在发生故障时执行的指定动作为重启电子设备,则软件看门狗停止向硬件看门狗发送喂狗消息,使电子设备重启。在电子设备重启之后,软件看门狗从配置文件中读取电子设备中的多个应用程序的配置参数,并根据配置参数中的信息启动多个应用程序,对多个应用程序执行如前述步骤101~步骤103中的方法,这样便能恢复任一个应用程序的正常运行。
又如,在当前轮询周期内,确定任一个应用程序发生了故障,若任一个应用程序已停止运行,则从配置文件中读取任一个应用程序在发生故障时执行的指定动作为重启任一个应用程序,并让任一个应用程序重新启动,同时保持周期性的向硬件看门发送喂狗消息。重启任一个应用程序具体是,软件看门狗从配置文件中读取任一个应用程序的配置参数,并根据配置参数中的信息启动任一个应用程序,之后按照前述步骤101~步骤103中的方法对任一个应用程序进行故障监控,这样便能恢复任一个应用程序的正常运行。
需要说明的是,在启动电子设备或重启电子设备中的任一个应用程序时,软件看门狗需要从配置文件中读取应用程序的配置参数来启动对应的应用程序。在重启电子设备时是读取配置文件中每个应用程序的配置参数,对每个应用程序进行启动;在重启电子设备中的任一个应用程序时,是仅从配置文件中读取需要重启的任一个应用程序的配置参数,对其进行启动。
可选的,在确定任一个应用程序的剩余喂狗时间为零或任一个应用程序停止运行后,还可以生成对应的日志信息。让系统管理员通过查看日志信息了解电子设备中的应用程序发生故障的情况,进而查找原因寻求解决办法。
需要理解的是,在本发明提供的上述实施例中,该软件看门狗可以应用于Linux系统中,也可以应用于Windows系统或其它系统中,具体不做限定。在应用于Linux系统中时,可以将软件看门狗作为主进程,而被软件看门狗监控的应用程序作为子进程,由于在Linux系统中子进程退出时会像主进程发送消息,这使得作为主进程的软件看门狗可以及时的发现应用程序发生了故障,所以能够及时的进行处理。
在本发明提供的实施例中,电子设备可以是网络安全设备,如网关设备。
实施例二、请参见图3,基于同一发明构思,本发明一实施例中提供一种软件看门狗,用于监控电子设备中的多个应用程序,该软件看门狗的具体实施方式可参见实施例一部分的描述,重复之处不再赘述。
发送单元301,用于按照硬件看门狗电路要求的周期定期向所述硬件看门狗发喂狗消息;
判断单元302,用于在当前轮询周期内,判断所述每个应用程序在各自对应的喂狗周期内是否执行了喂狗;
处理单元303,用于对于任一个应用程序,若所述任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定所述任一个应用程序发生故障,执行所述任一个应用程序发生故障时的指定动作,所述任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。
优选地,所述判断单元302具体用于:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间为零,则确定所述任一个应用程序在对应的喂狗周期内没有喂狗。
优选地,所述判断单元302具体用于:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则确定所述任一个应用程序在对应的喂狗周期内已喂狗。
优选地,所述判断单元302还用于:
若在所述当前轮询周期内,未接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则减少所述任一个应用程序的剩余喂狗时间;
若在所述当前轮询周期内,接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则将所述任一个应用程序的剩余喂狗时间恢复为所述任一个应用程序的最大喂狗时间。
优选地,所述处理单元303具体用于:
若所述指定动作为重启所述电子设备,则停止向硬件看门狗发送喂狗消息;
若所述指定动作为重启所述任一个应用程序,则重启所述任一个应用程序,并保持周期性的向所述硬件看门狗发送喂狗消息。
优选地,所述处理单元303还用于:
确定所述剩余喂狗时间为零之后,结束所述任一个应用程序的运行。
优选地,所述处理单元303还用于:
从预存的配置文件中获取所述任一个应用程序发生故障时的指定动作;其中,所述配置文件中包括应用程序的名称、运行参数以及异常时执行的指定动作,所述运行参数包括应用程序的启动参数和最大喂狗时间间隔。
优选地,所述处理单元303还用于:
在启动所述电子设备时,读取所述配置文件中的信息,并根据所述配置文件中各应用程序的配置参数启动对应的应用程序。
优选地,所述处理单元303还用于:
在确定所述剩余喂狗时间为零或所述任一个应用程序停止运行后,生成对应的日志信息。
实施例三、基于同一发明构思,本发明实施例中提供了一种电子设备,包括:至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的实施例一中的方法。
实施例四、基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的实施例一中的方法。
在本发明提供的实施例中,通过让软件看门狗按照硬件看门狗电路要求的周期定期向硬件看门狗发喂狗消息,并在当前轮询周期内,判断电子设备中的每个应用程序在各自对应的喂狗周期内是否执行了喂狗;对于任一个应用程序,若任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定任一个应用程序发生故障,执行任一个应用程序发生故障时的指定动作,任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。从而让软件看门狗在发现电子设备中的任一个应用程序发生故障后,便能及时的恢复发生故障的任一应用程序的正常运行,进而实现在不影响电子设备整体使用的情况下及时恢复故障程序的技术效果。由于在网络安全设备中存在大量的处理模块(即应用程序),且每个模块功能相对独立,而每个模块的故障都会影响设备处理攻击报文的能力;但是,如果仅仅因为某一个模块出现故障而重启整个设备将影响设备的整体使用效果,为了解决此问题,可以采用本发明提供的上述方案,在网络安全设备中设置上述技术方案中的软件看门狗,让软件看门狗周期性的判断各个处理模块在各自对应的喂狗周期内是否执行了喂狗,若这些处理模块中的任一个处理模块没有喂狗,则确定任一个处理模块发生了故障,然后让任一个处理模块执行在发生故障时的指定动作,以恢复任一个模块的正常运行,从而可以快速有效的发现网络安全设备中发生了故障的处理模块,并在发生故障后在发生故障的处理模块对应的范围内解决故障,从而在最小范围内解决相应的问题,使网络安全设备的整体使用不受影响。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种软件看门狗,应用于电子设备中,所述电子设备中运行有多个应用程序,其特征在于,包括:
按照硬件看门狗电路要求的周期定期向所述硬件看门狗发送喂狗消息;
在当前轮询周期内,判断每个应用程序在各自的喂狗周期内是否执行了喂狗;
对于任一个应用程序,若所述任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定所述任一个应用程序发生故障,执行所述任一个应用程序发生故障时的指定动作,所述任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。
2.如权利要求1所述的软件看门狗,其特征在于,确定所述任一个应用程序在自己对应的喂狗周期内没有喂狗的方法,包括:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间为零,则确定所述任一个应用程序在对应的喂狗周期内没有喂狗。
3.如权利要求1所述的软件看门狗,其特征在于,确定所述任一个应用程序在自己对应的喂狗周期内已喂狗的方法,包括:
若所述当前轮询周期内没有接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则确定所述任一个应用程序在对应的喂狗周期内已喂狗。
4.如权利要求3所述的软件看门狗,其特征在于,还包括:
若在所述当前轮询周期内,未接收到所述任一个应用程序的喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则减少所述任一个应用程序的剩余喂狗时间;
若在所述当前轮询周期内,接收到所述喂狗消息,且所述任一个应用程序的剩余喂狗时间不为零,则将所述任一个应用程序的剩余喂狗时间恢复为所述任一个应用程序的最大喂狗时间。
5.如权利要求1所述的软件看门狗,其特征在于,执行发生故障时的指定动作,包括:
若所述指定动作为重启所述电子设备,则停止向硬件看门狗发送喂狗消息;
若所述指定动作为重启所述任一个应用程序,则重启所述任一个应用程序,并保持周期性的向所述硬件看门狗发送喂狗消息。
6.如权利要求5所述的软件看门狗,其特征在于,执行发生故障时的指定动作之前,还包括:
确定所述任一个应用程序的剩余喂狗时间为零之后,结束所述任一个应用程序的运行。
7.如权利要求1-6任一权项所述的软件看门狗,其特征在于,执行所述任一个应用程序发生故障时的指定动作之前,还包括:
从预存的配置文件中获取所述任一个应用程序发生故障时的指定动作;其中,所述配置文件中包括应用程序的名称、运行参数以及异常时执行的指定动作,所述运行参数包括应用程序的启动参数和最大喂狗时间间隔。
8.一种软件看门狗,用于监控电子设备中的多个应用程序,其特征在于,包括:
发送单元,用于按照硬件看门狗电路要求的周期定期向所述硬件看门狗发送喂狗消息;
判断单元,用于在当前轮询周期内,判断所每个应用程序在各自的喂狗周期内是否执行了喂狗;
处理单元,用于对于任一个应用程序,若所述任一个应用程序在自己对应的喂狗周期内没有喂狗,则确定所述任一个应用程序发生故障,执行所述任一个应用程序发生故障时的指定动作,所述任一个应用程序发生故障时的指定动作为重启电子设备或重启所述任一个应用程序。
9.一种电子设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如权利要求1-7任一项所述的软件看门狗。
10.一种计算机可读存储介质,其特征在于:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的软件看门狗。
CN201811562888.2A 2018-12-20 2018-12-20 一种软件看门狗、电子设备及计算机存储介质 Pending CN109710441A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811562888.2A CN109710441A (zh) 2018-12-20 2018-12-20 一种软件看门狗、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811562888.2A CN109710441A (zh) 2018-12-20 2018-12-20 一种软件看门狗、电子设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN109710441A true CN109710441A (zh) 2019-05-03

Family

ID=66256963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811562888.2A Pending CN109710441A (zh) 2018-12-20 2018-12-20 一种软件看门狗、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN109710441A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427296A (zh) * 2019-06-29 2019-11-08 苏州浪潮智能科技有限公司 一种基于硬件wdt进行监测的方法、设备及可读介质
CN110502369A (zh) * 2019-08-20 2019-11-26 京信通信系统(中国)有限公司 一种设备死机恢复的方法、装置和存储介质
CN112506689A (zh) * 2020-12-10 2021-03-16 盛立金融软件开发(杭州)有限公司 一种异构柜台系统风险监控方法、装置、设备及介质
CN115794442A (zh) * 2023-01-10 2023-03-14 深圳华北工控软件技术有限公司 嵌入式系统、进程通信方法、装置、计算机设备及介质
CN116501399A (zh) * 2023-06-26 2023-07-28 荣耀终端有限公司 一种唤醒方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815449A (zh) * 2005-02-01 2006-08-09 艾默生网络能源有限公司 看门狗控制方法
JP2008225807A (ja) * 2007-03-13 2008-09-25 Yaskawa Electric Corp 制御装置およびそのプログラム暴走監視方法
JP2009003711A (ja) * 2007-06-21 2009-01-08 Mitsubishi Electric Corp マイクロコンピュータの停止検出装置
CN103645962A (zh) * 2013-12-18 2014-03-19 北京华环电子股份有限公司 基于NiosII系统的看门狗实现方法及装置
CN104063223A (zh) * 2014-06-26 2014-09-24 西安空间无线电技术研究所 一种fpga实现软件编程器件可控看门狗功能的方法
CN104199746A (zh) * 2014-09-01 2014-12-10 中国东方电气集团有限公司 一种多任务软件看门狗的实现方法
CN108304275A (zh) * 2018-01-09 2018-07-20 福州瑞芯微电子股份有限公司 一种检测安卓系统应用层异常的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815449A (zh) * 2005-02-01 2006-08-09 艾默生网络能源有限公司 看门狗控制方法
JP2008225807A (ja) * 2007-03-13 2008-09-25 Yaskawa Electric Corp 制御装置およびそのプログラム暴走監視方法
JP2009003711A (ja) * 2007-06-21 2009-01-08 Mitsubishi Electric Corp マイクロコンピュータの停止検出装置
CN103645962A (zh) * 2013-12-18 2014-03-19 北京华环电子股份有限公司 基于NiosII系统的看门狗实现方法及装置
CN104063223A (zh) * 2014-06-26 2014-09-24 西安空间无线电技术研究所 一种fpga实现软件编程器件可控看门狗功能的方法
CN104199746A (zh) * 2014-09-01 2014-12-10 中国东方电气集团有限公司 一种多任务软件看门狗的实现方法
CN108304275A (zh) * 2018-01-09 2018-07-20 福州瑞芯微电子股份有限公司 一种检测安卓系统应用层异常的方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427296A (zh) * 2019-06-29 2019-11-08 苏州浪潮智能科技有限公司 一种基于硬件wdt进行监测的方法、设备及可读介质
CN110502369A (zh) * 2019-08-20 2019-11-26 京信通信系统(中国)有限公司 一种设备死机恢复的方法、装置和存储介质
CN112506689A (zh) * 2020-12-10 2021-03-16 盛立金融软件开发(杭州)有限公司 一种异构柜台系统风险监控方法、装置、设备及介质
CN112506689B (zh) * 2020-12-10 2023-08-11 盛立安元科技(杭州)股份有限公司 一种异构柜台系统风险监控方法、装置、设备及介质
CN115794442A (zh) * 2023-01-10 2023-03-14 深圳华北工控软件技术有限公司 嵌入式系统、进程通信方法、装置、计算机设备及介质
CN116501399A (zh) * 2023-06-26 2023-07-28 荣耀终端有限公司 一种唤醒方法及电子设备
CN116501399B (zh) * 2023-06-26 2023-11-07 荣耀终端有限公司 一种唤醒方法及电子设备

Similar Documents

Publication Publication Date Title
CN109710441A (zh) 一种软件看门狗、电子设备及计算机存储介质
TWI746512B (zh) 實體機器故障分類處理方法、裝置和虛擬機器恢復方法、系統
CN108710544B (zh) 一种数据库系统的进程监控方法及轨道交通综合监控系统
US9921938B2 (en) Anomaly detection system, anomaly detection method, and program for the same
CN107147540A (zh) 高可用性系统中的故障处理方法和故障处理集群
CN101895540B (zh) 用于应用服务进程守护的系统和方法
CN102968352A (zh) 进程监控及多级恢复系统和方法
CN104113428B (zh) 一种设备管理装置和方法
CN105760241A (zh) 一种内存数据导出方法和系统
CN109361542A (zh) 客户端的故障处理方法、装置、系统、终端和服务器
CN111930222A (zh) 一种控制方法、装置及电子设备
Di Sanzo et al. Machine learning for achieving self-* properties and seamless execution of applications in the cloud
CN107729213B (zh) 一种后台任务监控方法及装置
CN109257396B (zh) 一种分布式锁调度方法及装置
CN109828945B (zh) 一种业务报文处理方法及系统
CN105426263A (zh) 一种实现金库系统安全运行的方法及系统
CN110262362A (zh) 一种agv工作温度监控方法、系统及装置
CN102231124B (zh) 一种嵌入式系统任务的守护方法
JP2008152552A (ja) 計算機システム及び障害情報管理方法
KR20080051045A (ko) 홈네트워크에서의 오류 모델과 규칙 기반의 오류 관리 장치및 그 방법
CN112822039B (zh) 双机热备系统主备模式切换的方法
CN103036711B (zh) 状态检测方法及系统、管理节点设备
CN102932196B (zh) 一种主机系统状态的检测方法和装置
CN111897681A (zh) 一种报文转发方法、装置、计算设备及存储介质
CN111934909A (zh) 主备机ip资源切换方法、装置、计算机设备和存储介质

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: 20190503