一种用于进程管理的方法和装置与流程

文档序号:11286094阅读:144来源:国知局
一种用于进程管理的方法和装置与流程

本公开涉及进程管理技术领域,尤其涉及一种用于进程管理的方法和装置。



背景技术:

近年来,互联网技术和软件技术快速发展,并广泛用于各个领域。在日常工作生活中,通过智能设备和应用软件的结合,可以实现满足人们不同的需求,为工作和生活提供了诸多便利。在工业生产领域,可以通过软件实现对生产设备的自动化控制和监测等,能够减少人工劳作,提高生产精度和效率。但是如果软件运行过程中发生故障或异常,也会引起诸多问题。因此,现在对软件的稳定性和可靠性的要求越来越高。软件的稳定性和可靠性取决于其执行过程中各个进程。然而现有进程管理技术中,一般是对进程占用资源的调控和优化。而在进程状态出现例如异常或错误等情况时,无法对进程进行及时有效的处理。



技术实现要素:

为克服相关技术中存在的问题,本公开提供一种用于进程管理的方法和装置。

根据本公开实施例的第一方面,提供一种用于进程管理的方法,所述方法包括:加载待管理进程的配置文件;监测所述待管理进程的运行状态;以及根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制。

优选地,所述待管理进程包括一个或者一个以上的子进程,所述监测所述待管理进程的运行状态包括:针对所述待管理进程,监测所述待管理进程中每个子进程的运行状态;根据所述待管理进程的所有子进程的运行状态确定所述待管理进程的运行状态。

优选地,所述方法还包括:接收来自进程状态机的、关于各个子进程的状态信息,所述状态信息包括子进程的进程名称和运行状态的对应关系;存储所述状态信息;所述监测所述待管理进程中每个子进程的运行状态包括:遍历所述存储的状态信息,以得到所述待管理进程中每个子进程的运行状态。

优选地,所述监测所述待管理进程中每个子进程的运行状态包括:在所述存储的状态信息中查找所述待管理进程中的任一个子进程的进程名称;当查找到时,根据查找到的对应的状态信息确定该子进程的运行状态。

优选地,所述遍历所述存储的状态信息,以得到所述待管理进程中每个子进程的运行状态包括:按照预设周期,定时遍历所述存储的状态信息,以得到所述待管理进程中每个子进程的运行状态。

优选地,所述配置文件包括至少一条配置信息,所述配置信息包括待管理进程的进程名称和安全启动指令,所述根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制包括:当根据所述待管理进程的运行状态确定所述待管理进程需要安全恢复时,在配置文件中查找包括有所述待管理进程的进程名称的配置信息;根据查找到的配置信息中、与所述待管理进程的进程名称对应的安全启动指令启动所述待管理进程。

优选地,所述配置信息包括待管理进程的进程名称、安全启动指令和超时时长,所述根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制包括:当根据所述待管理进程的运行状态确定所述待管理进程处于启动中状态时,记录所述待管理进程的启动时长;若所述启动时长达到所述超时时长,则在配置文件中查找包括有所述待管理进程的进程名称的配置信息;根据查找到的配置信息中、与所述待管理进程的进程名称对应的安全启动指令启动所述待管理进程。

优选地,所述方法还包括:在所述根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制之后,将所述待管理进程的运行状态和/或状态控制的操作信息记录到日志。

根据本公开实施例的第二方面,提供一种用于进程管理的装置,所述装置包括:加载单元,用于加载待管理进程的配置文件;监测单元,用于监测所述待管理进程的运行状态;以及状态控制单元,用于根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制。

优选地,所述装置还包括:日志记录单元,用于在所述根据所述配置文件和所述待管理进程的运行状态对所述待管理进程进行状态控制之后,将所述待管理进程的运行状态和/或状态控制的操作信息记录到日志。

本公开的实施例提供的技术方案可以包括以下有益效果:通过对软件中进程状态的监控和状态控制,可以针对进程的不同状态给出不同的状态控制方案,从而对进程进行合理的状态控制,提高软件可靠性和稳定性。并且通过结合配置文件,能够很方便的扩展选择待管理进程。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种用于进程管理的方法的流程图;

图2是根据一示例性实施例的优选实施例示出的一种用于进程管理的方法的流程图;

图3是根据另一示例性实施例示出的一种用于进程管理的方法的流程图;

图4是根据另一示例性实施例示出的一种用于进程管理的方法的流程图;

图5是根据一示例性实施例示出的包括多个子进程的待管理进程的示意图;

图6是根据一示例性实施例示出的一种用于进程管理的装置的结构框图;以及

图7是根据另一示例性实施例示出的一种用于进程管理的装置的结构框图。

附图标记说明

141加载模块142监测模块

143控制模块144状态机

145日志记录模块

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种用于进程管理的方法的流程图,如图1所示,根据本公开一示例性实施例,用于进程管理的方法可以包括以下步骤:

在步骤s11中,加载待管理进程的配置文件。

在步骤s12中,监测待管理进程的运行状态。

在步骤s13中,根据配置文件和待管理进程的运行状态对待管理进程进行状态控制。

其中,待管理进程可以是多个进程,并且为了保证本公开的通用性,多个待管理进程中的每个待管理进行的运行状态可以进行统一定义,例如待管理进程的运行状态可以统一定义包括:已启动、已停止、启动中以及错误。配置文件中可以包括至少一条配置信息,该配置信息按照一定格式写入配置文件。其中,配置信息例如可以包括待管理进程(例如其名称、id等)、待管理进程的安全启动命令、超时时间等信息。该配置文件类型可以是任何合理的文件类型,且各配置信息的格式类型可以是任何合理的格式类型。优选地,为了便于对配置信息的加载和管理,该配置信息的格式类型选用统一的格式类型。

通过上述方法可以针对进程的不同状态给出不同的状态控制方案,从而对进程进行合理的状态控制,提高软件可靠性和稳定性。并且通过结合配置文件,能够很方便的扩展选择待管理进程。

根据本公开一实施例,待管理进程可以包括一个或者一个以上的子进程。在一些实施例中,当待管理进程包括一个子进程时,可以从进程状态机(用于监测各个进程的运行状态,在此不限制状态机的类型,本领域技术人员能够采用现有的状态机实现本公开中进程状态机的功能)接收该子进程的运行状态,该子进程的运行状态即该待管理进程的运行状态。

在另一些实施例中,在待管理进程包括有一个以上的子进程的实施例中,可以根据各个子进程的运行状态来确定待管理进程的运行状态。示例性地,可以从进程状态机接收并存储关于各个子进程的状态信息,该状态信息可以包括进程名称和运行状态的对应关系。可以通过遍历存储的状态信息,以确定该待管理进程的运行状态。举例来说,待管理进程process3,其包含两个子进程process4和process5,当process4和process5的运行状态均为停止状态时,则可以确定待管理进程process3的运行状态为停止状态;当process4和process5的运行状态均为已启动状态时,则可以确定待管理进程process3的运行状态为已启动状态;当process4和process5中任一个处于正在启动状态(启动中),另一个处于已启动时,则可以确定待管理进程的运行状态为启动中。当process4和process5中任一个处于已停止状态,另一个处于启动中或者已启动状态时,则可以确定待管理进程的运行状态为错误状态。

更为优选地,根据存储的状态信息确定各个子进程的运行状态,进而确定待管理进程的运行状态可以实现为:在所述存储的状态信息中查找所述待管理进程中的任一个子进程的进程名称,当查找到时,根据查找到的对应的状态信息确定该子进程的运行状态,进而根据确定的子进程的运行状态确定待管理进程的运行状态。进一步地,可以预先设定遍历存储的状态信息的周期,并按照预设周期,定时遍历存储的状态信息,以确定待管理进程中各个子进程的运行状态,进而确定所述待管理进程的运行状态。

应用上述实施例,根据多个子进程的运行状态来确定待管理进程的运行状态,进而管理待管理进程的运行状态,可以实现对多个子进程的统一管理,且上述实施例中考虑到各个进程的运行状态不同,采用状态机维护,使对待管理进程的控制更加安全有效。

图2是根据一示例性实施例的优选实施例示出的一种用于进程管理的方法的流程图。如图2所示,在本公开的优选实施例中,首先加载并解析配置文件,并按照统一格式缓存配置文件中的配置信息。通过维护进程状态机来输出待管理进程的运行状态,并将待管理进程的运行状态缓存。然后定时遍历待管理进程,并通过待管理进程名称获取缓存的待管理进程的运行状态。当待管理进程的状态为已启动时,则继续下一待管理进程的状态控制;当待管理进程的运行状态为已停止或错误时,则安全恢复该待管理进程,以避免功能缺失;当待管理进程的运行状态为启动中时,则判断是否超时,并在判断为超时的情况下安全恢复待管理进程,该安全恢复待管理进程可以例如是重新启动该待管理进程。最后将待管理进程的运行状态和状态控制的操作信息记录到日志,以便后续对问题的跟踪定位。在一些实施例中,可以仅将待管理进程的运行状态和状态控制的操作记录中的一者记录到日志,以便后续对问题的跟踪定位。

图3是根据另一示例性实施例示出的一种用于进程管理的方法的流程图。如图3所示,配置信息可以包括待管理进程的进程名称和安全启动指令。并且在待管理进程的状态为已停止或错误时,通过以下步骤安全恢复待管理进程:

在步骤s31中,加载待管理进程的配置文件,并解析配置文件以及缓存配置文件中的配置信息。

在步骤s32中,监测待管理进程的运行状态,并在监测待管理进程的运行状态为已停止或错误时,确定待管理进程需要安全恢复。

在步骤s33中,根据需要安全恢复的待管理进程,在配置文件中查找包括有该待管理进程的进程名称的配置信息。

在步骤s34中,根据查找到的配置信息中、与所述待管理进程的进程名称对应的安全启动指令启动需要安全恢复的待管理进程。

应用上述实施例,在配置信息中配置进程名称和安全启动指令,并结合监测到的待管理进程的运行状态,能够在待管理进程处于停止状态或者错误状态时,调用配置信息中的安全启动指令及时启动待管理进程。

图4是根据另一示例性实施例示出的一种用于进程管理的方法的流程图。如图4所示,更为优选地,配置信息还可以包括超时时长,并且在待管理进程的运行状态为启动中时,通过以下步骤判断是否超时并在超时的情况下安全恢复待管理进程:

在步骤s41中,加载待管理进程的配置文件,并解析配置文件以及缓存配置文件中的配置信息。

在步骤s42中,监测待管理进程的运行状态,当根据待管理进程的运行状态确定待管理进程处于启动中状态时,记录所述待管理进程的启动时长。

在步骤s43中,若启动时长达到超时时长,则在配置文件中查找包括有待管理进程的进程名称的配置信息。

在步骤s44中,根据查找到的配置信息中、与待管理进程的进程名称对应的安全启动指令启动待管理进程。

通过预先设定超时时长,并将处于启动中状态的待管理进程的启动时长与之进行比较,可以减少当启动时间较长的特殊进程启动时或者具有相互依赖关系的进程集(待管理进程包括一个以上子进程)启动时对其运行状态的误判,进而降低对待管理进程进行错误状态控制的可能性。

图5是根据一示例性实施例示出的包括多个子进程的待管理进程的示意图,如图5所示,在本公开的优选实施例中,可以将相关联的待管理的多个子进程封装为一个待管理的总进程。在图3中,包括待管理进程1、待管理进程2和待管理进程3三个待管理进程,其中待管理进程3是由子进程4和子进程5两个相关联的子进程封装而成的一个待管理进程。针对该总进程,可以监测其每个子进程的运行状态,并根据待管理进程的所有子进程的运行状态确定所述待管理进程的运行状态。

举例来说,对于包括多个子进程的待管理进程,其运行状态根据多个子进程的运行状态来确定。例如,当总进程包括两个子进程时,当两个子进程的运行状态均为已停止时,总进程的运行状态为已停止;当两个子进程的运行状态均为已启动时,总进程的运行状态为已启动;当两个子进程的运行状态均为启动中时,总进程的运行状态为启动中;当其中一个子进程的运行状态为启动中时,另一个子进程的运行状态为已启动时,总进程的运行状态为启动中;当其中一个子进程的运行状态为已停止,另一个子进程的运行状态为启动中或已启动时,该总进程的运行状态为错误。

根据配置文件和总进程的运行状态对总进程进行状态控制,即根据确定的总进程的状态,对其全部子进程进行相同的状态控制。例如,当总进程为已停止或错误而需要进行安全恢复例如重新启动时,则对该总进程内的全部子进程进行重新启动。

通过将多个待管理的相关联的子进程封装为一个待管理的总进程,可以将总进程中的每个子进程作为一个整体进程管理,进而保证了不同子进程之间在业务上的依赖关系。

优选地,可以从待管理进程的状态机接收并存储关于各个子进程的状态信息,该状态信息可以包括子进程的进程名称和运行状态的对应关系。通过遍历存储的状态信息,以得到所述待管理进程中每个子进程的运行状态。更为优选地,可以在所述存储的状态信息中查找所述待管理进程中的任一个子进程的进程名称。当查找到时,根据查找到的对应的状态信息确定该子进程的运行状态。其中,可以预先设定遍历存储的状态信息的周期,并按照预设周期,定时遍历存储的状态信息,以得到所述待管理进程中每个子进程的运行状态。

图6是根据一示例性实施例示出的一种用于进程管理的装置的结构框图。参照图6,该装置包括加载模块151,监测模块152和控制模块153。

该加载模块141被配置为用于加载待管理进程的配置文件。

该监测模块142被配置为用于监测待管理进程的运行状态。

该控制模块143被配置为用于根据配置文件和待管理进程的运行状态对待管理进程进行状态控制。

通过上述装置可以对进程的不同状态进行不同的状态控制,从而提高了软件可靠性和稳定性。并且通过结合配置文件,能够很方便的扩展选择待管理进程。

其中,待管理进程可以是多个进程,并且为了保证本公开的通用性,多个待管理进程中的每个待管理进行的运行状态可以进行统一定义,例如待管理进程的运行状态可以统一定义为包括:已启动、已停止、启动中以及错误。并且配置文件中可以包括至少一条配置信息,该配置信息按照一定格式写入配置文件。该配置文件类型可以是任何合理的文件类型,且各配置信息的格式类型可以是任何合理的格式类型。优选地,为了便于对配置信息的加载和管理,该配置信息的格式类型选用统一的格式类型。

在本公开一实施例的优选实施例中,加载模块141在加载待管理进程的配置文件后,对配置文件进行解析并按照统一格式缓存配置文件中的配置信息,以便于对配置信息的调用。该配置信息可以包括待管理进程的进程名称、安全启动指令和超时时长。监测模块142遍历所述进程,并根据待管理进程名称从对应的状态机获取待管理进程的运行状态,并将所述运行状态发送给控制模块143。控制模块143可以根据当前的安全性要求对不同待管理进程的运行状态定制不同的处理方案,并将该处理方案以安全启动指令的形式存储在配置文件的配置信息中。当控制模块143接收到待管理进程的运行状态时,可以被根据配置文件和待管理进程的运行状态对待管理进程进行状态控制。

优选地,当控制模块143接收到的待管理进程的状态为已启动时,控制模块143继续下一待管理进程的状态控制;当接收到的待管理进程的运行状态为已停止或错误时,控制模块143安全恢复该待管理进程,以避免功能缺失,该安全恢复待管理进程可以例如通过重新安全启动该待管理进程;当接收到的待管理进程的运行状态为启动中时,控制模块143进行判断是否超时,并在判断超时的情况下安全恢复待管理进程。

作为本公开一优选实施例,为了将彼此具有依赖关系的相关联的多个待管理进程进行统一管理,可以将多个待管理进程封装为一个待管理的总进程。控制模块143根据总进程的运行状态和配置文件对该总进程进行状态控制。

图7是根据另一示例性实施例示出的一种用于进程管理的装置的结构框图。如图7所示,作为本公开进一步的公开和优化,所述装置还包括状态机144,该状态机144被配置为用于检测并输出对应进程的状态。本公开中也不限定特定方式或者特定编程语言来维护待管理进程的状态机,只要状态机能够正常输出某进程的运行状态即可,用于维护状态机的编程语言可以例如是shell,python,c等。

优选地,所述装置还包括日志记录模块145,该日志记录模块被配置为用于将待管理进程的运行状态和状态控制的操作信息记录到日志。可选地,该日志记录模块还可以被配置为仅将待管理进程的运行状态和状态控制的操作信息中的一者记录到日志。

关于上述实施例中的装置,其中各个模块执行操作的部分具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

通过本发明所公开的方法和装置,可以针对进程的不同状态给出不同的状态控制方案,从而对进程进行合理的状态控制。将具有依赖关系的多个进程统一管理,保证了不同子进程在业务上的依赖关系。并且通过结合配置文件,更方便待管理进程的扩展。同时考虑到各个进程的运行状态不同,采用状态机维护,便于对各待管理进程状态的获取和监测。而且引入了超时机制,使对被管理进程的控制更加准确有效。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1