一种常驻进程保活系统以及方法技术方案

技术编号:19511102 阅读:27 留言:0更新日期:2018-11-21 07:40
本申请提供了一种常驻进程保活系统以及方法,其中,该系统包括:守护进程执行模块,用于周期性获取需要保活的常驻进程脚本的标识信息,并根据标识信息向锁管理进程执行模块发送加锁请求;在接收到锁管理进程执行模块根据加锁请求反馈的加锁成功信息后,触发系统内核基于常驻进程脚本创建对应的常驻进程;在接收到锁管理进程执行模块根据加锁请求反馈的加锁失败信息后,确定常驻进程为存活状态;锁管理进程执行模块,用于在接收到加锁请求后,根据加锁请求检测与常驻进程脚本对应的锁文件是否存在;若否则创建锁文件,并向守护进程执行模块反馈加锁成功信息;若是则向守护进程执行模块反馈加锁失败信息。该系统能够保证常驻进程不会失去控制。

【技术实现步骤摘要】
一种常驻进程保活系统以及方法
本申请涉及计算机
,具体而言,涉及一种常驻进程保活系统以及方法。
技术介绍
脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支。脚本按照触发时机分为定时脚本和常驻进程脚本;其中,定时脚本指需要在特定时间被执行的脚本;常驻进程脚本则是需要一直被执行的脚本。常驻进程脚本在执行时,会在执行的常驻进程脚本的设备内核中生成与脚本对应的常驻进程;为了实现常驻进程能够一直在内核中运行,也即实现常驻进程的保活,当前一般使用管理员Supervisor软件对常驻进程进行管理。Supervisor软件是一种能够用在类UNIX系统上的一种进程控制软件;Supervisor软件的主程序通过创建子进程来实现对常驻进程的管理。为了实现对常驻进程的管理,子进程在开始执行常驻进程脚本时,会生成一与常驻进程对应的进程标识(ProcessIdentification,PID)文件,并将常驻进程的身份标识保存在该PID文件中,当常驻进程本关闭时,与常驻进程对应的PID文件会被删除;这种常驻进程保活方法容易导致常驻进程失去控制。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种常驻进程保活系统以及方法,能够保证常驻进程不会失去控制。第一方面,本申请实施例提供了一种常驻进程保活系统,该系统包括:守护进程执行模块以及锁管理进程执行模块;所述守护进程执行模块,用于周期性获取需要保活的常驻进程脚本的标识信息,并根据所获取的所述常驻进程脚本的标识信息,向所述锁管理进程执行模块发送加锁请求;以及,在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁成功信息后,触发系统内核基于所述常驻进程脚本创建对应的常驻进程;在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁失败信息后,确定所述常驻进程为存活状态;所述锁管理进程执行模块,用于在接收到所述守护进程执行模块发送的加锁请求后,根据所述加锁请求检测与所述常驻进程脚本对应的锁文件是否存在;若否,则创建所述锁文件,并向所述守护进程执行模块反馈加锁成功信息;若是,则向所述守护进程执行模块反馈加锁失败信息。第二方面,本申请实施例还提供一种常驻进程保活方法,该方法包括:守护进程周期性获取需要保活的常驻进程脚本的标识信息,并根据所获取的所述常驻进程脚本的标识信息,向锁管理进程发送加锁请求;锁管理进程在接收到所述守护进程发送的加锁请求后,根据所述加锁请求检测与所述常驻进程脚本对应的锁文件是否存在;若否,则创建所述锁文件,并向所述守护进程反馈加锁成功信息;若是,则向所述守护进程反馈加锁失败信息;若守护进程接收到所述锁管理进程反馈的加锁成功信息,则触发系统内核基于所述常驻进程脚本创建对应的常驻进程,若守护进程接收到所述锁管理进程反馈的加锁失败信息,则确定所述常驻进程为存活状态。第三方面,本申请实施例还提供一种计算机设备,所述计算机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行上述计算机程序时实现如权利要求6-8任意一项所述的常驻进程保活方法。第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述权利要求5-8任意一项所述的常驻进程保活方法。本申请实施例提供的常驻进程保活系统中,守护进程执行模块会周期性的获取需要包好的常驻进程脚本的标识信息,并根据常驻进程脚本的标识信息,向锁管理进程执行模块发送加锁请求。锁管理进程执行模块在接收到加锁请求后,会根据加锁请求检测与常驻进程脚本对应的锁文件是否存在,若存在则向守护进程执行模块反馈加锁失败信息;若不存在则创建锁文件,并向守护进程执行模块反馈加锁成功信息。守护进程执行模块若接收到加锁成功信息后,会直接触发系统内核基于常驻进程脚本创建对应的常驻进程,若接收到加锁失败信息后,就能够确定常驻进程为存活状态,在该过程中,由于锁管理进程执行模块本身是系统内核的一部分,其所生成的锁文件在一般情况下是不允许被删除的,锁文件能够随着常驻进程的创建而生成,并随着常驻进程的关闭而消亡,因此不会存在锁文件被删除而对应的常驻进程还在运行的情况,以保证常驻进程不会失控。为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本申请实施例所提供的一种常驻进程保活系统的结构示意图;图2示出了本申请实施例所提供的另一种常驻进程保活系统的结构示意图;图3示出了本申请实施例所提供的一种常驻进程保活方法的流程图;图4示出了本申请实施例所提供的一种计算机设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。目前常驻进程脚本的保活通常依赖于Supervisor软件。在使用Supervisor软件进行常驻进程保护的时候,Supervisor主进程会生成一用于执行常驻进程保活的管理子进程;该管理子进程在开始执行常驻进程脚本的时候,会生成一个与该常驻进程脚本对应的PID文件,在该PID文件中保存了执行常驻进程脚本时所生成的常驻进程的身份标识;当常驻进程被关闭时,该PID文件会被关闭;常驻进程的关闭受到管理子进程的控制。采用Supervisor软件容易导致常驻进程失去控制。这是由于:其一:假若与常驻进程对应的PID文件被误删除,管理子进程由于找不到PID文件,会认为常驻进程被关闭,从而会重新打开与常驻进程对应的常驻进程脚本,生成新的PID文件,以及生成新的常驻进程;原来的常驻进程就会失去控制。原来的常驻进程失去控制会导致多种问题。例如,若某业务不再需要执行常驻进程,需要将该常驻进程停止;但是由于原来的常驻进程的PID文件被删除,管理子进程已经无法通过PID文件找到原来的常驻进程,进而其也无法控制原来的常驻进程的关闭,会导致原来的常驻进程无法在需要的时候被关闭;又例如,若常驻进程对应的常驻进程脚本在某一时刻被更新;需要将该常驻进程停止后重新开启,以执行更新后的常驻进程脚本,但是由于原来的常驻进程的PID文件被删除,管理子进程已经无法通过PID文件找到原来的常驻进程,进而其也无法控制原来的常驻进程的关闭,因而业务逻辑一直会按照原来的常驻进程脚本执行,而不能按照更新后的常驻进程脚本执本文档来自技高网...

【技术保护点】
1.一种常驻进程保活系统,其特征在于,该系统包括:守护进程执行模块以及锁管理进程执行模块;所述守护进程执行模块,用于周期性获取需要保活的常驻进程脚本的标识信息,并根据所获取的所述常驻进程脚本的标识信息,向所述锁管理进程执行模块发送加锁请求;以及,在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁成功信息后,触发系统内核基于所述常驻进程脚本创建对应的常驻进程;在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁失败信息后,确定所述常驻进程为存活状态;所述锁管理进程执行模块,用于在接收到所述守护进程执行模块发送的加锁请求后,根据所述加锁请求检测与所述常驻进程脚本对应的锁文件是否存在;若否,则创建所述锁文件,并向所述守护进程执行模块反馈加锁成功信息;若是,则向所述守护进程执行模块反馈加锁失败信息。

【技术特征摘要】
1.一种常驻进程保活系统,其特征在于,该系统包括:守护进程执行模块以及锁管理进程执行模块;所述守护进程执行模块,用于周期性获取需要保活的常驻进程脚本的标识信息,并根据所获取的所述常驻进程脚本的标识信息,向所述锁管理进程执行模块发送加锁请求;以及,在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁成功信息后,触发系统内核基于所述常驻进程脚本创建对应的常驻进程;在接收到所述锁管理进程执行模块根据所述加锁请求反馈的加锁失败信息后,确定所述常驻进程为存活状态;所述锁管理进程执行模块,用于在接收到所述守护进程执行模块发送的加锁请求后,根据所述加锁请求检测与所述常驻进程脚本对应的锁文件是否存在;若否,则创建所述锁文件,并向所述守护进程执行模块反馈加锁成功信息;若是,则向所述守护进程执行模块反馈加锁失败信息。2.根据权利要求1所述的系统,其特征在于,所述守护进程执行模块,具体用于通过下述步骤根据所获取的所述常驻进程脚本的标识信息,向所述锁管理进程执行模块发送加锁请求:根据所述标识信息,按照预设的生成规则,生成与所述常驻进程脚本对应的锁文件的保存路径以及锁文件名称;生成所述加锁请求;所述加锁请求中携带所述保存路径以及所述锁文件名称;将所述加锁请求发送给所述锁管理进程执行模块;所述锁管理进程执行模块,具体用于通过下述步骤根据所述加锁请求检测与所述常驻进程脚本对应的锁文件是否存在:根据所述保存路径,确定与所述保存路径对应的存储位置,并在所述存储位置查找是否存在与所述加锁请求中携带的锁文件名称一致的锁文件。3.根据权利要求1所述的系统,其特征在于,还包括:常驻进程监测进程执行模块,用于对所述常驻进程的运行状态进行监测,以及在监测到所述常驻进程的运行结束后,向所述锁管理进程执行模块发送锁文件释放指令;所述锁管理进程执行模块,还用于在接收到常驻进程监测进程执行模块发送饿锁文件释放指令后,将所述常驻进程对应的锁文件删除。4.根据权利要求1所述的系统,其特征在于,还包括:常驻进程执行模块,用于执行所述系统内核创建的所述常驻进程;以及在执行所述常驻进程完成一个业务周期后,获取与所述常驻进程对应的常驻进程脚本;将获取的常驻进程脚本与所述常驻进程创建时所加载的常驻进程脚本进行比对;在两者不一致时,关闭所述常驻进程。5.一种常驻进程保活方法,其特征在于,该方法包...

【专利技术属性】
技术研发人员:杨冰张灿
申请(专利权)人:北京顺丰同城科技有限公司
类型:发明
国别省市:北京,11

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

1