CN114237766A - 一种进程动态重启的方法 - Google Patents
一种进程动态重启的方法 Download PDFInfo
- Publication number
- CN114237766A CN114237766A CN202111627946.7A CN202111627946A CN114237766A CN 114237766 A CN114237766 A CN 114237766A CN 202111627946 A CN202111627946 A CN 202111627946A CN 114237766 A CN114237766 A CN 114237766A
- Authority
- CN
- China
- Prior art keywords
- module
- sub
- subprocess
- main process
- core service
- 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
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明涉及嵌入式装置技术领域,尤其涉及一种进程动态重启的方法。其主要针对进程程序缺陷导致运行异常,现有的处理手段是重启整个嵌入式装置,这种处理方式影响到异常装置核心业务处理模块的运行,造成功能中断,不能将核心业务持续地运行的问题,提出如下技术方案:包括控制管理面和核心业务面,所述控制管理面包括主进程模块和子进程模块,所述子进程模块中包括多个子进程,所述主进程模块内包含有异常处理函数模块和子进程恢复函数模块。本发明在子进程运行异常时能动态重启恢复运行,不需要重启整装置,从而保证核心业务模块功能不会中断,确保嵌入式装置的运行稳定性,主要应用于嵌入式装置的程序运行。
Description
技术领域
本发明涉及嵌入式装置技术领域,尤其涉及一种进程动态重启的方法。
背景技术
在嵌入式装置中,通常是控制管理面和核心业务面分开,控制管理面负责嵌入式装置的运行管理、通信、人机接口等;核心业务面通常负责核心数据处理或核心业务逻辑,对处理性能和实时性等要求很高,功能不可中断;控制管理面一般由主控CPU处理器处理,在主控CPU中分主进程和其他子进程,主进程负责管理子进程启动、资源分配、装置的运行监视等功能,各子进程模块则负责一些独立的功能,如与后台网络通信、人机接口显示、运行状态保存等功能。专利“CN 110221908B”中提出“用于嵌入式装置的进程管理方法及嵌入式装置”该方案中通过在云端服务器中保存嵌入式装置所需的多个进程的数据,嵌入式装置需要更新或新增进程时,从云端服务器获取该进程的唯一标识以及该进程的数据。通过利用云端服务器无限的存储空间,提高了嵌入式系统的环境适应能力,解决了因存储空间的限制所导致的嵌入式操作系统的环境适应能力差的问题,提高了嵌入式系统的性能;但是该方案中并没有针对随着控制管理面上子进程功能和种类越来越复杂,难免会出现进程程序缺陷导致运行异常的情况(如内存越界访问或空指针操作等)的解决方案,现有的处理手段通常的就是重启整个嵌入式装置以恢复运行异常的子模块功能或切换到备份装置,这种处理方法都直接影响到异常装置核心业务处理模块的运行,造成功能中断,不能将核心业务持续地运行;鉴于此,我们提出一种进程动态重启的方法。
发明内容
本发明的目的是针对背景技术中存在的进程程序缺陷导致运行异常,现有的处理手段是重启整个嵌入式装置,这种处理方式影响到异常装置核心业务处理模块的运行,造成功能中断,不能将核心业务持续地运行的问题,提出一种进程动态重启的方法。
本发明的技术方案:一种进程动态重启的方法,包括控制管理面和核心业务面,所述控制管理面包括主进程模块和子进程模块,所述子进程模块中包括多个子进程,所述主进程模块内包含有异常处理函数模块和子进程恢复函数模块,所述异常处理函数模块和子进程恢复函数模块均连接有待恢复子进程列表模块,具体包括以下步骤:
步骤一:主进程模块在上电时,启动子进程模块和核心业务面加载运行,主进程模块运行异常处理函数模块和子进程恢复函数模块,设置异常处理函数模块作为子进程异常时的处理模块;
步骤二:当子进程运行异常时,步骤一中的异常处理函数模块将子进程的ID编号保存至待恢复子进程列表模块的恢复队列中;
步骤三:主进程模块调用子进程恢复函数模块对待恢复子进程列表模块中的进程信息进行处理,重新加载子进程恢复运行。
优选的,所述步骤一中在启动子进程模块的同时保存各子进程的信息,所述子进程模块可以根据业务配置的需要对应增加子进程,所述子进程包括子进程A、子进程B、子进程C...子进程N。
优选的,所述异常处理函数模块用于对子进程模块中的各子进程进行监控,当子进程运行异常,能捕获到子进程异常信息,所述异常处理函数模块还用于将异常的子进程ID编号保存至待恢复子进程列表模块。
优选的,步骤一中加载运行主要包括上电时作业、上电中作业和运行作业,上电中作业:所述主进程模块用于完成各子进程模块的配置和资源分配,所述子进程模块和核心业务面与主进程模块交互初始化信息;运行作业:主进程模块对运行的子进程模块状态进行监测,所述子进程模块和核心业务面根据主进程模块下发的资源运行。
优选的,所述步骤三中通过对待恢复子进程列表模块中的子进程信息查询,若待恢复子进程列表模块中存有异常子进程ID编号,主进程模块则在本地找到该ID编号对应的子进程程序,重新加载恢复运行该子进程。
优选的,重新加载该子进程中主进程模块用于按照启动流程重新与子进程模块建立交互关系和资源配置。
优选的,所述核心业务面负责核心数据处理或核心业务逻辑,所述管理控制面包括主控CPU处理器,主进程模块负责管理子进程模块的启动、资源分配、装置的运行监视,子进程模块负责与后台网络通信、人机接口显示和运行状态的保存等。
与现有技术相比,本发明具有如下有益的技术效果:
本发明在上电加载子进程模块运行时,通过主进程模块配置对应的子进程模块加载运行,对子进程模块的运行状态的监控,保存各子进程的信息,同时设置子进程异常时的异常处理函数,异常处理函数模块把异常退出的子进程ID编号保存到子进程待恢复的队列中,主进程模块循环调用恢复函数模块对子进程恢复队列进行处理,重新加载该异常的子进程时,主进程按照上电加载过程重新与子进程交互和资源分配,子进程模块动态重启恢复的场景包括子进程由于运行异常导致重启或子进程程序在线升级时先停止执行再重启的场景。
综上所述,本发明在子进程异常退出时能动态重启恢复运行,不需要重启整装置,从而保证核心业务模块功能不会中断,确保嵌入式装置的运行稳定性。
附图说明
图1是一种进程动态重启的方法的原理框图。
具体实施方式
下文结合附图和具体实施例对本发明的技术方案做进一步说明。
实施例
如图1所示,本发明提出的一种进程动态重启的方法,包括控制管理面和核心业务面,核心业务面负责核心数据处理或核心业务逻辑,管理控制面包括主控CPU处理器,主进程模块负责管理子进程模块的启动、资源分配、装置的运行监视,子进程模块负责与后台网络通信、人机接口显示和运行状态的保存等,控制管理面包括主进程模块和子进程模块,子进程模块中包括多个子进程,所述主进程模块内包含有异常处理函数模块和子进程恢复函数模块,所述异常处理函数模块和子进程恢复函数模块均连接有待恢复子进程列表模块,异常处理函数模块用于对子进程模块中的各子进程进行监控,当子进程运行异常,能捕获到子进程异常信息,并将异常的子进程ID编号保存至待恢复子进程列表模块,具体包括以下步骤:
步骤一:主进程模块在上电时,启动子进程模块和核心业务面加载运行,在启动子进程模块的同时保存各子进程的信息,子进程模块可以根据业务配置的需要对应增加子进程,子进程包括子进程A、子进程B、子进程C...子进程N;
加载运行主要包括上电时作业、上电中作业和运行作业,上电中作业:主进程模块用于完成各子进程模块的配置和资源分配,子进程模块和核心业务面根据主进程模块下发的资源运行;主进程模块设置异常处理函数模块作为子进程异常时的处理模块。
步骤二:当子进程运行异常时,步骤一中的异常处理函数模块将异常子进程的ID编号保存至待恢复子进程列表模块的恢复队列中;
步骤三:主进程模块调用子进程恢复函数模块对待恢复子进程列表模块中的异常子进程信息进行处理,具体处理方案为通过对待恢复子进程列表模块中的异常子进程信息查询,若待恢复子进程列表模块中存有异常退出的子进程ID编号,主进程模块则在本地找到该ID编号对应的子进程程序,重新加载该子进程,重新加载该子进程中主进程模块按照启动流程重新与子进程模块建立交互关系和资源配置。
本实施例中,控制管理面上分布的模块包括主进程模块和子进程模块,其中子进程模块包括其他子进程A、子进程B、子进程C等,主进程模块的作用是根据业务配置启动各子进程,在启动过程中与各子进程进行信息交互、资源下发等公共控制功能,当子进程模块中的子进程异常退出时,主进程模块可以监控到该子进程的异常退出,获取该子进程的ID编号并存入待恢复子进程列表模块中的队列,并通过子进程恢复函数模块将待恢复子进程列表模块中的子进程重新动态启动,给子进程分配资源恢复运行,本方法可以根据业务配置需要再增加其他子进程模块,子进程模块个数不受限制。
具体的重启流程为:系统上电时主进程模块根据业务配置启动具体的子进程模块和核心业务模块,把子进程模块的各个进程ID信息保存到本地,同时向操作系统注册子进程异常处理函数模块作为异常信号的响应函数,这样当子进程执行异常时,操作系统发出异常信号,执行子进程异常处理函数模块;在上电过程中,子进程模块和核心业务面会与主进程模块之间交互消息;主进程模块根据业务配置和子进程模块资源请求信息进行资源的统一分配,然后把这些分配的信息发到子进程模块和核心业务面,核心业务面管理数据的运行;在运行过程中,子进程模块和核心业务模块根据主进程模块下发的资源运行,主进程模块监视各子进程模块的运行状态;
运行阶段包括两种情况:一种情况:当运行阶段子进程模块发生异常退出时,主进程模块会收到操作系统发出的子进程异常信号,然后调用异常处理函数模块进行处理;该异常处理函数模块会把异常退出的子进程模块ID编号保存到待恢复子进程列表模块的队列中;另一种情况:运行阶段,主进程也会周期主动查询子进程模块的运行状态,当发现子进程运行功能异常,主动停止子进程运行,操作系统同样会发出子进程异常信号,然后调用异常处理函数模块处理,将异常退出的子进程模块ID编号保存到待恢复子进程列表模块的队列中。
主进程模块会周期调用子进程恢复函数模块对子进程模块待恢复队列进行处理;如果该队列中存在子进程模块异常退出的ID编号,说明该ID编号对应的子进程模块异常退出,主进程模块会在本地找到该ID编号对应的子进程模块程序,重新加载该子进程;在重新加载该退出的子进程时,主进程模块按照启动流程重新与子进程模块交互和资源分配;上述工作完成后,主进程模块和各个子进程模块之间继续协调正常运行。
需要说明的是本方案中的子进程重启恢复的场景包括但不限于子进程由于运行异常导致重启的情况,对于子进程程序在线升级时,可以将子进程程序下载到本地,然后主动杀死子进程,用新程序覆盖该子进程的旧程序,主进程捕捉到该子进程的异常信号,然后调用异常处理函数模块执行,将该子进程加入到子进程恢复队列,继而子进程恢复函数模块重启该子进程的新程序运行,达到在线升级子进程模块的目的,在此过程中核心业务模块功能未受影响。
上述具体实施例仅仅是本发明的一种优选的实施例,基于本发明的技术方案和上述实施例的相关启示,本领域技术人员可以对上述具体实施例做出多种替代性的改进和组合。
Claims (7)
1.一种进程动态重启的方法,包括控制管理面和核心业务面,所述控制管理面包括主进程模块和子进程模块,所述子进程模块中包括多个子进程,所述主进程模块内包含有异常处理函数模块和子进程恢复函数模块,所述异常处理函数模块和子进程恢复函数模块均连接有待恢复子进程列表模块,具体包括以下步骤:
步骤一:主进程模块在上电时,启动子进程模块和核心业务面加载运行,主进程模块运行异常处理函数模块和子进程恢复函数模块,设置异常处理函数模块作为子进程异常时的处理模块;
步骤二:当子进程运行异常时,步骤一中的异常处理函数模块将子进程的ID编号保存至待恢复子进程列表模块的恢复队列中;
步骤三:主进程模块调用子进程恢复函数模块对待恢复子进程列表模块中的进程信息进行处理,重新加载子进程恢复运行。
2.根据权利要求1所述的一种进程动态重启的方法,其特征在于,所述步骤一中在启动子进程模块的同时保存各子进程的信息,所述子进程模块可以根据业务配置的需要对应增加子进程,所述子进程包括子进程A、子进程B、子进程C...子进程N。
3.根据权利要求1所述的一种进程动态重启的方法,其特征在于,所述异常处理函数模块用于对子进程模块中的各子进程进行监控,当子进程运行异常,能捕获到子进程异常信息,所述异常处理函数模块还用于将异常的子进程ID编号保存至待恢复子进程列表模块。
4.根据权利要求1所述的一种进程动态重启的方法,其特征在于,步骤一中加载运行主要包括上电时作业、上电中作业和运行作业,上电中作业:所述主进程模块用于完成各子进程模块的配置和资源分配,所述子进程模块和核心业务面与主进程模块交互初始化信息;运行作业:主进程模块对运行的子进程模块状态进行监测,所述子进程模块和核心业务面根据主进程模块下发的资源运行。
5.根据权利要求1所述的一种进程动态重启的方法,其特征在于,所述步骤三中通过对待恢复子进程列表模块中的子进程信息查询,若待恢复子进程列表模块中存有异常子进程ID编号,主进程模块则在本地找到该ID编号对应的子进程程序,重新加载恢复运行该子进程。
6.根据权利要求5所述的一种进程动态重启的方法,其特征在于,重新加载该子进程中主进程模块用于按照启动流程重新与子进程模块建立交互关系和资源配置。
7.根据权利要求1所述的一种进程动态重启的方法,其特征在于,所述核心业务面负责核心数据处理或核心业务逻辑,所述管理控制面包括主控CPU处理器,主进程模块负责管理子进程模块的启动、资源分配、装置的运行监视,子进程模块负责与后台网络通信、人机接口显示和运行状态的保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627946.7A CN114237766A (zh) | 2021-12-28 | 2021-12-28 | 一种进程动态重启的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627946.7A CN114237766A (zh) | 2021-12-28 | 2021-12-28 | 一种进程动态重启的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114237766A true CN114237766A (zh) | 2022-03-25 |
Family
ID=80764136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111627946.7A Pending CN114237766A (zh) | 2021-12-28 | 2021-12-28 | 一种进程动态重启的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237766A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589757A (zh) * | 2014-10-23 | 2016-05-18 | 上海天脉聚源文化传媒有限公司 | 一种服务器架构下的保护工作进程的方法和服务器 |
CN107480005A (zh) * | 2017-07-31 | 2017-12-15 | 惠州华阳通用电子有限公司 | 一种Linux系统进程守护方法 |
CN109933465A (zh) * | 2019-03-12 | 2019-06-25 | 北京同城必应科技有限公司 | 异常处理方法、装置、服务器和存储介质 |
CN111352803A (zh) * | 2020-03-09 | 2020-06-30 | 广州市百果园信息技术有限公司 | 业务数据处理方法、装置、设备和存储介质 |
CN113535446A (zh) * | 2021-06-29 | 2021-10-22 | 中国人民解放军战略支援部队信息工程大学 | 用于线路接入时业务数据保护的进程双向守护方法及系统 |
-
2021
- 2021-12-28 CN CN202111627946.7A patent/CN114237766A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589757A (zh) * | 2014-10-23 | 2016-05-18 | 上海天脉聚源文化传媒有限公司 | 一种服务器架构下的保护工作进程的方法和服务器 |
CN107480005A (zh) * | 2017-07-31 | 2017-12-15 | 惠州华阳通用电子有限公司 | 一种Linux系统进程守护方法 |
CN109933465A (zh) * | 2019-03-12 | 2019-06-25 | 北京同城必应科技有限公司 | 异常处理方法、装置、服务器和存储介质 |
CN111352803A (zh) * | 2020-03-09 | 2020-06-30 | 广州市百果园信息技术有限公司 | 业务数据处理方法、装置、设备和存储介质 |
CN113535446A (zh) * | 2021-06-29 | 2021-10-22 | 中国人民解放军战略支援部队信息工程大学 | 用于线路接入时业务数据保护的进程双向守护方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4496093B2 (ja) | 高可用性システムの遠隔エンタープライズ管理 | |
CA3168286A1 (en) | Data flow processing method and system | |
CN109656742B (zh) | 一种节点异常处理方法、装置及存储介质 | |
US7583591B2 (en) | Facilitating communications with clustered servers | |
CN110618864A (zh) | 一种中断任务恢复方法及装置 | |
US7434204B1 (en) | Method and apparatus for managing software processes | |
CN108984195B (zh) | 一种软件升级方法及装置 | |
US20070101119A1 (en) | Methods and apparatus for automatically multi-booting a computer system | |
CN113849264A (zh) | 用于编排终端设备上的基于容器的应用的方法 | |
US20040136246A1 (en) | Server apparatus having function of changing over from old to new module | |
US20110047550A1 (en) | Software program execution device, software program execution method, and program | |
US20020073409A1 (en) | Telecommunications platform with processor cluster and method of operation thereof | |
JP5056504B2 (ja) | 制御装置、情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム | |
JP5285045B2 (ja) | 仮想環境における故障復旧方法及びサーバ及びプログラム | |
CN115499300B (zh) | 嵌入式设备集群化运行架构系统、构建方法及构建装置 | |
CN110333973B (zh) | 一种多机热备的方法和系统 | |
CN114237766A (zh) | 一种进程动态重启的方法 | |
CN116360865A (zh) | 集群管理方法、设备及计算系统 | |
CN107005434A (zh) | 一种同步虚拟网络功能vnf状态的方法、装置和设备 | |
CN112866314B (zh) | 分布式主从系统中从节点的切换方法、主节点设备和存储介质 | |
US20220179680A1 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
CN108234215B (zh) | 一种网关的创建方法、装置、计算机设备及存储介质 | |
CN107092531B (zh) | 计算框架、电子设备及信息处理方法 | |
JP2003298624A (ja) | サービス制御アプリケーション実行システムにおける通信路確保方法 | |
CN115550424B (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 |