CN113918407A - 一种管理服务进程的方法、装置及可读存储介质 - Google Patents
一种管理服务进程的方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN113918407A CN113918407A CN202111031226.4A CN202111031226A CN113918407A CN 113918407 A CN113918407 A CN 113918407A CN 202111031226 A CN202111031226 A CN 202111031226A CN 113918407 A CN113918407 A CN 113918407A
- Authority
- CN
- China
- Prior art keywords
- service process
- service
- running state
- abnormal
- detecting whether
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提出了一种管理服务进程的方法、装置及可读存储介质,其中方法包括:获取服务进程的运行状态相关信息;基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。本公开的方法在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态,解决了嵌入式系统中没有对服务进程的健康状态监测,以及当服务进程异常时无法及时回复服务的问题。
Description
技术领域
本发明涉及Linux应用技术领域,尤其涉及一种管理服务进程的方法、装置及可读存储介质。
背景技术
目前主流的嵌入式系统中,都存在进程管理模块。主要作用在系统开启后,启动相关的服务或业务模块,在linux操作系统中对于服务进程进行管理,主要用于解决以下问题:
1)管理linux系统中服务进程
2)系统运行过程中服务出现异常,没有恢复机制,导致服务中断。
因此现有技术用户体验不好。
发明内容
本发明实施例提供一种管理服务进程的方法、装置及可读存储介质,用以恢复所述服务进程的状态异常,提高嵌入式设备的使用体验。
第一方面,本发明实施例提供一种管理服务进程的方法,应用于嵌入式设备中,包括:
获取服务进程的运行状态相关信息;
基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;
在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
在一些实施例中,获取服务进程的运行状态相关信息是从解析器获取的,所述解析器被配置为根据预设启动列表来确定各服务进程的启动顺序,以及,根据各模块配置文件来确定各服务进程的运行状态相关信息。
在一些实施例中,各服务进程的运行状态相关信息至少包括如下中的一种:启动顺序启动脚本路径、被监控的PID文件路径、健康检测脚本路径、最大启动次数、启动超时信息。
在一些实施例中,检测所述服务进程的运行状态是否异常包括:
检测所述服务进程的服务进程识别号PID是否存活,若不存活,则直接认定所述服务进程异常;
若存活,则进一步检测所述服务进程的运行状态异常。
在一些实施例中,检测所述服务进程的运行状态是否异常具体包括:
通过Proc文件系统来检测所述服务进程的服务进程识别号PID是否存活,以及检测所述服务进程的运行状态是否正常;和/或
通过健康检测脚本检测所述服务进程的服务状态是否正常。
在一些实施例中,还包括:
对异常的服务进程:
检测该服务进程是否已经到达最大重启次数;
若已达到最大重启次数,且,仍未恢复正常,则重新为该服务进程选择处理模式。
在一些实施例中,重新选择处理模式包括:重启系统,或者,放弃监测该服务进程。
第二方面,本发明实施例还提供一种管理服务进程的装置,应用于嵌入式设备中,包括:
监控模块,被配置为获取服务进程的运行状态相关信息;
处理模块,被配置为:
基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;
在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
第三方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述各实施例所述一种管理服务进程的方法的步骤。
本发明实施例通过基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态,解决了嵌入式系统中自启动程序固化不能自由控制的弊端,通过控制程序的自启动,有效的减少了内存和CPU的使用,并为程序的调试提供了方便。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例基本流程图;
图2为本发明实施例配置模块的解析器基本机构示意图;
图3为本发明实施例监控模块的健康监控示意图;
图4为本发明实施例监控模块的健康监控流程示意图;
图5为本发明实施例处理模块示意图;
图6为本发明实施例处理模块处理流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种管理服务进程的方法,应用于嵌入式设备中,如图1所示,包括:
S101、获取服务进程的运行状态相关信息。
具体的说,本公开的管理服务进程的方法用于管理系统中的服务进程,解决了嵌入式系统中无法对服务进程的状态、服务质量进行监控。可以通过配置处理模块来获取服务进程的运行状态相关信息,实现服务进程的健康监控。
S102、基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常。
配置处理模块来获取服务进程的运行状态相关信息之后可以将运行服务进程的运行状态相关的信息发送给监控模块,通过监控模块基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常。
S103、在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
监控模块可以在检测到所述服务进程的运行状态异常的情况下,则进入异常处理流程,可以通过处理模块调用所述服务进程的启动脚本,以恢复所述服务进程的状态。本实施例中所述的配置处理模块、监控模块以及处理模块可以是软件可以是硬件也可以软件与硬件的组合,在此不做限定。
本发明实施例通过基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态,解决了嵌入式系统中自启动程序固化不能自由控制的弊端,通过控制程序的自启动,有效的减少了内存和CPU的使用,并为程序的调试提供了方便。
在一些实施例中,获取服务进程的运行状态相关信息是从解析器获取的,所述解析器被配置为根据预设启动列表来确定各服务进程的启动顺序,以及,根据各模块配置文件来确定各服务进程的运行状态相关信息。
如图2所示,启动列表中用于声明服务模块启动的依赖顺序,服务管理模块在启动服务进程时,会根据启动列表进行启动。本示例中解析器可以是Json解析器,Json解析器可以将启动列表解析成“模块启动信息”,当然如图2所示Json解析器还可以根据各模块配置文件解析获得“模块监控信息”。Json解析器可以将解析得到的“模块启动信息”和“模块监控信息”提供给监控模块和处理模块调用。
在一些实施例中,各服务进程的运行状态相关信息至少包括如下中的一种:启动顺序启动脚本路径、被监控的PID文件路径、健康检测脚本路径、最大启动次数、启动超时信息。在具体实施过程中,启动顺序启动脚本路径可以解析获得启动脚本,PID文件信息等运行状态相关信息从而能够为监控模块和处理模块来检测和判定。
在一些实施例中,周期性检测所述服务进程的运行状态是否异常包括:检测所述服务进程的服务进程识别号PID是否存活,若不存活,则直接认定所述服务进程异常;若存活,则进一步检测所述服务进程的运行状态异常。在一些实施例中,检测所述服务进程的运行状态是否异常具体可以包括:通过Proc文件系统来检测所述服务进程的服务进程识别号PID是否存活,以及检测所述服务进程的运行状态是否正常;和/或通过健康检测脚本检测所述服务进程的服务状态是否正常。
如图3所示,本申请中监控模块的健康监控主要用于解决目前linux系统中没有容错机制,当服务进程意外挂死或服务出现问题时,导致服务中断的技术问题。通过监控模块监控服务进程的PID、服务进程运行状态的手段,检测服务进程的健康状态,通过周期调用服务检测脚本,实现对服务质量的检测。当服务进程出现问题时,实现服务的恢复。具体的检测手段可以包括如下步骤:在一些场景中,例如存在僵尸进程,这种情下该进程的PID是存在的,但是该进程已经是异常状态了,此时监控模块可以通过Proc文件系统检测服务进程PID是否存在判断进程是否存活,并且通过linux的proc文件系统检测进程的运行状态是否正常。还可以通过周期性地调用服务注册的健康检测脚本,判断服务状态或服务进程是否正常。例如在一些应用场景中,服务进程可能是正常的,但是其对外提供的服务可能出现问题了,通过健康检测脚本可以用于检测这种情况下的服务状态。如果服务状态或服务进程异常,则通知处理模块对服务进程执行重启操作。如图4所示,具体的可以首先根据模块监控信息检测服务进程的PID是否存在,检测进程的运行状态是否正常,是否是僵尸进程。若服务进程的PID不存在,则可以直接进入异常处理步骤。若正常则进一步检测。检测进程的运行状态是否正常,是否是僵尸进程。还可以通过检测脚本,检测服务进程的业务部分是否正常。在任一一个步骤检测出异常的情况下,则进入异常处理步骤。若均正常,则进入等待周期,到下一检测周期重新进行检测。
在一些实施例中,还包括:
对异常的服务进程:
检测该服务进程是否已经到达最大重启次数;
若已达到最大重启次数,且,仍未恢复正常,则重新为该服务进程选择处理模式。
在一些实施例中,重新选择处理模式包括:重启系统,或者,放弃监测该服务进程。
如图5所示,可以根据启动脚本和启动参数,处理模块通过调用服务的启动脚本,对该服务进行重启。如图6所示,针对重启无法进程无法实现恢复服务的效果时,本发明提供两种处理方式,第一种模式我们会将系统重启达到恢复的目的,在另一种模式下,为了避免对其他的服务造成影响,放弃对该服务进程的监控。如图6所示,检测该进程是否已经到达最大重启次数(主要针对进程反复重启,如过到达了最大次数,根据处理模式,可以选择重启系统或放弃对该进程的监控。重新启动该进程,检测进程重启结果。
本发明方法通过PID、PROC文件检测服务进程状态的检测,通过检测脚本实现对服务状态的检测,通过对服务进程健康与业务健康双层检测,确保对外服务质量,以及系统稳定性。在异常处理时,提供两种处理模式,使系统更加稳定。
本发明实施例还提供一种管理服务进程的装置,应用于嵌入式设备中,包括:
监控模块,被配置为获取服务进程的运行状态相关信息;
处理模块,被配置为:
基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;
在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
具体的管理服务进程的装置可以由配置处理模块、监控模块、处理模块三个模块组成。配置处理模块主要负责解析配置文件,生成配置数据;处理模块负责服务进程的启动和停止;监控模块负责监控服务进程健康状况。
本发明解决了系统中服务异常退出导致的业务中断、系统异常的问题,增强了系统的容错能力。在异常处理时,提供两种处理模式,使系统更加稳定。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述各实施例所述一种管理服务进程的方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (9)
1.一种管理服务进程的方法,应用于嵌入式设备中,其特征在于,包括:
获取服务进程的运行状态相关信息;
基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;
在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
2.如权利要求1所述的管理服务进程的方法,其特征在于,获取服务进程的运行状态相关信息是从解析器获取的,所述解析器被配置为根据预设启动列表来确定各服务进程的启动顺序,以及,根据各模块配置文件来确定各服务进程的运行状态相关信息。
3.如权利要求2所述的管理服务进程的方法,其特征在于,各服务进程的运行状态相关信息至少包括如下中的一种:启动顺序启动脚本路径、被监控的PID文件路径、健康检测脚本路径、最大启动次数、启动超时信息。
4.如权利要求1所述的管理服务进程的方法,其特征在于,检测所述服务进程的运行状态是否异常包括:
检测所述服务进程的服务进程识别号PID是否存活,若不存活,则直接认定所述服务进程异常;
若存活,则进一步检测所述服务进程的运行状态异常。
5.如权利要求4所述的管理服务进程的方法,其特征在于,检测所述服务进程的运行状态是否异常具体包括:
通过Proc文件系统来检测所述服务进程的服务进程识别号PID是否存活,以及检测所述服务进程的运行状态是否正常;和/或
通过健康检测脚本检测所述服务进程的服务状态是否正常。
6.如权利要求1所述的管理服务进程的方法,其特征在于,还包括:
对异常的服务进程:
检测该服务进程是否已经到达最大重启次数;
若已达到最大重启次数,且,仍未恢复正常,则重新为该服务进程选择处理模式。
7.如权利要求6所述的管理服务进程的方法,其特征在于,重新选择处理模式包括:重启系统,或者,放弃监测该服务进程。
8.一种管理服务进程的装置,应用于嵌入式设备中,其特征在于,包括:
监控模块,被配置为获取服务进程的运行状态相关信息;
处理模块,被配置为:
基于所述运行状态相关信息,周期性检测所述服务进程的运行状态是否异常;
在检测到所述服务进程的运行状态异常的情况下,调用所述服务进程的启动脚本,以恢复所述服务进程的状态。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述一种管理服务进程的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031226.4A CN113918407A (zh) | 2021-09-03 | 2021-09-03 | 一种管理服务进程的方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031226.4A CN113918407A (zh) | 2021-09-03 | 2021-09-03 | 一种管理服务进程的方法、装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918407A true CN113918407A (zh) | 2022-01-11 |
Family
ID=79233842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111031226.4A Pending CN113918407A (zh) | 2021-09-03 | 2021-09-03 | 一种管理服务进程的方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918407A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174644A (zh) * | 2022-06-28 | 2022-10-11 | 武汉烽火技术服务有限公司 | 容器集群服务启停控制方法、装置、设备及存储介质 |
-
2021
- 2021-09-03 CN CN202111031226.4A patent/CN113918407A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174644A (zh) * | 2022-06-28 | 2022-10-11 | 武汉烽火技术服务有限公司 | 容器集群服务启停控制方法、装置、设备及存储介质 |
CN115174644B (zh) * | 2022-06-28 | 2023-09-12 | 武汉烽火技术服务有限公司 | 容器集群服务启停控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515820B (zh) | 一种服务器故障维护方法、装置、服务器及存储介质 | |
CN111324423B (zh) | 容器内进程的监控方法、装置、存储介质和计算机设备 | |
EP3121726A1 (en) | Fault processing method, related device and computer | |
CN107589951B (zh) | 一种集群升级方法及装置 | |
CN106790463B (zh) | Web配置文件重载过程的访问方法和系统 | |
WO2018019242A1 (zh) | 网站服务器的自恢复方法和自恢复系统 | |
CN111949368A (zh) | 应用程序控制方法及装置 | |
CN112099825B (zh) | 组件进行升级的方法、装置、设备及存储介质 | |
CN106775860B (zh) | Web配置文件的重载方法和系统 | |
CN113918407A (zh) | 一种管理服务进程的方法、装置及可读存储介质 | |
CN112099757A (zh) | 一种应用保活的方法以及装置 | |
CN114756406A (zh) | 应用程序崩溃的处理方法、装置及电子设备 | |
CN116860552A (zh) | 应用程序运行监测方法、装置、电子设备及存储介质 | |
CN110231921B (zh) | 日志打印方法、装置、设备及计算机可读存储介质 | |
CN110555017A (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
CN111078382A (zh) | 一种命令超时处理方法及装置 | |
CN113688021B (zh) | 一种负载均衡服务处理方法、装置、设备及可读存储介质 | |
CN107179911B (zh) | 一种重启管理引擎的方法和设备 | |
CN109032643A (zh) | 软件更新的方法和装置 | |
CN108959038A (zh) | 一种分布式应用服务监控的方法及装置 | |
CN113886122B (zh) | 一种系统运行异常处理方法、装置、设备及存储介质 | |
CN112181702B (zh) | 一种线程监测方法及装置 | |
US20110138232A1 (en) | Information processing apparatus and method for acquiring information for hung-up cause investigation | |
JP2005018179A (ja) | 障害監視装置 | |
CN113297149A (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 |