CN111858177B - 进程间通信的异常修复方法、装置、电子设备及存储介质 - Google Patents

进程间通信的异常修复方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111858177B
CN111858177B CN202010712125.2A CN202010712125A CN111858177B CN 111858177 B CN111858177 B CN 111858177B CN 202010712125 A CN202010712125 A CN 202010712125A CN 111858177 B CN111858177 B CN 111858177B
Authority
CN
China
Prior art keywords
client terminal
terminal program
inter
communication
program
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.)
Active
Application number
CN202010712125.2A
Other languages
English (en)
Other versions
CN111858177A (zh
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.)
Guangzhou Liuhuan Information Technology Co ltd
Original Assignee
Guangzhou Liuhuan Information 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 Guangzhou Liuhuan Information Technology Co ltd filed Critical Guangzhou Liuhuan Information Technology Co ltd
Priority to CN202010712125.2A priority Critical patent/CN111858177B/zh
Publication of CN111858177A publication Critical patent/CN111858177A/zh
Application granted granted Critical
Publication of CN111858177B publication Critical patent/CN111858177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

本申请实施例提供了一种进程间通信的异常修复方法、装置、电子设备和存储介质,涉及进程间通信技术领域。该方法应用于与各个进程链接的客户端子程序和与其互联的服务端子程序,所述服务端子程序和第一客户端子程序是独立运行的系统子程序;所述方法包括以下步骤:在多进程间通信中,通过所述第一客户端子程序确定进程间通信状态出现异常的第一进程;向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复;其中,所述第一客户端子程序链接所述第一进程。本申请的技术方案能够在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的。

Description

进程间通信的异常修复方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及进程间通信技术领域,具体而言,本申请实施例涉及一种进程间通信的异常修复方法、装置、电子设备及存储介质。
背景技术
基于Linux开发的系统在越来越多领域中应用,例如,Linux车载娱乐系统,随着系统不断发展演化,功能越来越多,为了同时兼顾软件功能实现、系统健壮性、用户操作流畅度等,一般设计多进程模块形态构成。多进程主要分布在三个层次,即app层、中间层(service)、和驱动层(BSP),其中app和中间层运行在用户空间。通常复杂功能的实现都需要多进程协作才能完成,比如收音机的搜台功能,app层完成HMI交互逻辑,收音机中间件完成搜台逻辑和协议封装,通信模块完成IIC数据分发到收音芯片,期间涉及到了2个以上的进程协作,也即进程之间的交互需要依赖进程间通信(下称IPC)机制来完成。
多进程模块的IPC调用主要有同步调用和异步调用。当发生同步调用时,经常遇到接收方处理一些逻辑的时候耗时太多或者异常卡住,造成调用方IPC阻塞。一旦调用方的IPC不通畅,其他模块调用其时候也会处于一种等待状态,最后发展成系统通信阻塞或者瘫痪。例如有三个模块A、 B、C,A调用B,B将A堵住,C调用A,A的IPC被B占用,使得C 的同步调用一直处于等待,以此类推。
常用的解决方案是重启进程,当重启进程对用户的使用造成影响。为了解决该问题,目前的解决办法是增加多进程模块之间的通信链路进行同时通信,但这种方式存在明显缺陷,一方面不能满足特定场景的同步调用要求,另一方面需要增加大量额外的系统资源,造成系统的资源浪费,而且增加多链路也只能提升了通信能力,并不能根本上解决进程间调用的堵塞问题,反而可能引发由于多链路发送造成数据、状态和时序混乱现象产生,无法实现自我恢复。
发明内容
为了能够解决根本进程间调用的堵塞问题,本申请实施例提供了一种进程间通信的异常修复方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种进程间通信的异常修复方法,应用于与各个进程链接的客户端子程序和与其互联的服务端子程序,所述服务端子程序和第一客户端子程序是独立运行的系统子程序;
该方法包括以下步骤:
在多进程间通信中,通过所述第一客户端子程序确定进程间通信状态出现异常的第一进程;
向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复;
其中,所述第一客户端子程序链接所述第一进程。
在第一方面的可选实施例中,所述向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复的步骤,包括:
接收所述第一客户端子程序返回的进程数据包,并向第二客户端子程序发送第一进程的第一异常信息;
通知第二进程依据所述第一异常信息对所述第一进程进行异常修复;
其中,所述第二进程为第一进程调用的进程,所述第二客户端子程序是独立运行的系统子程序,所述第二客户端子程序链接所述第二进程。
在第一方面的可选实施例中,在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程的步骤,包括:
获取由所述第一客户端子进程写入的在所述第一进程发起调用时产生的调用状态信息;
若在设定时间内未接收所述第一客户端子程序返回的所述第一进程的调用接口信息,确定所述第一进程的进程间通信状态出现异常。
在第一方面的可选实施例中,在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程的步骤,包括:
定期向所述第一客户端子程序发送对所述第一进程发出进程间通信状态的查询指令;
若在设定时间内未接收所述第一客户端子程序返回的所述第一进程通信状态正常的反馈信息,确定所述第一进程的进程间通信状态出现异常。
在第一方面的可选实施例中,所述向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复的步骤,包括:
向所述第一客户端子程序下发所述第一进程进程间通信异常的监控结果;其中,所述第一客户端子程序将所述监控结果回调给所述第一进程,通知所述第一进程进行自我修复;
接收所述第一客户端子程序返回的第一修复结果信息。
在第一方面的可选实施例中,所述通知第二进程依据所述第一异常信息对所述第一进程进行异常修复的步骤,包括:
通知所述第二客户端子程序将所述第一异常信息发送至第二进程;其中,所述第二进程查询自身进程间通信状态并追踪堵塞第一进程的调用接口,对所述接口进行异常处理并放弃当次第一进程的调用;
接收所述第二客户端子程序返回的第二进程的放弃第一进程调用的确认信息,通过所述第一客户端子程序再次启动所述第一进程调用所述第二进程;其中,若第一进程再次调用成功,继续执行进程间通信;若第一进程调用失败,通知第一进程重启。
在第一方面的可选实施例中,所述进程间通信的异常修复方法,还包括:
将所述进程数据包下发至所述第一客户端子程序转发给所述第一进程,使得所述第一进程依据所述进程数据包进行重启;
接收所述第一客户端子程序反馈的重启运行结果,若第一进程经过重启后异常修复不成功,启动系统重启流程,并在系统中记录第一进程重启无法恢复的日志。
在第一方面的可选实施例中,所述进程数据包包括:第一进程下一次恢复所需恢复的数据、进程间通信堵塞前的最后一次调用函数信息,以及进程间通信堵塞前最后一次通信的第二进程。
第四方面,本申请实施例还提供一种进程间通信的异常修复装置,应用于与各个进程链接的客户端子程序和与其互联的服务端子程序,所述服务端子程序和第一客户端子程序是独立运行的系统子程序;
所述装置包括:
异常确认模块,用于在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程;
异常修复模块,用于向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复;其中,所述第一客户端子程序链接所述第一进程。
第三方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行实现本申请实施例的第一方面所提供的进程间通信的异常修复方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,该程序被处理器执行时实现本申请实施例第一方面所提供的进程间通信的异常修复方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请的实施例在系统中添加对进程间通信的各个进程链接对应的客户端子程序,以及与多个进程的客户端子程序互联的服务端子程序,实现对每个进程的进程间通信状态进行监控,并确认异常时下发修改指令进行异常修复,实现系统无需重启或增加额外的资源以添加链路来应对进程间调用的堵塞问题,在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的,从而提高用户的使用体验。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请实施例的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个实施例所提供的进程间通信的异常修复的执行的系统框架图;
图2为本申请一个实施例所提供的进程间通信的异常修复方法的流程示意图;
图3为本申请一个实施例所提供的对第一进程进行监控的时序图;
图4为本申请另一个实施例所提供的对第一进程进行监控的时序图;
图5为本申请一个实施例所提供的异常修复方法的时序图;
图6为本申请一个实施例所提供的进程间通信的异常修复装置的结构示意图;
图7为本申请一个实施例所提供的一种进程间通信的异常修复的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
参照图1,图1为本申请一个实施例所提供的进程间通信的异常修复的执行的系统框架图。在系统中,为了实现复杂的功能需要多个进程进行同步调用。如图1中,包括进程A、进程B、进程C,根据箭头所连接的两个进程之间建立通信链路,进程间利用对应的通信链路进行进程间通信(图中标识为IPC),以此实现相互间的调用,每个进程使用各自的调用接口向被调用进程传输信息。
在本申请中,为了解决进程间通信所出现的调用堵塞问题,在系统中创建了进程间通信的监控进程,该监控进程包括服务端子程序和客户端子程序,服务端子程序和客户端子程序为可独立运行的系统子程序,为系统获取并传送进程间的通信所产生的信息,并实现监控的作用。
在本申请的实施例中,该客户端子程序可通过向被监控的注入DLL 文件,以动态链接库的形态链接于被监控的各个进程。而服务端子程序独立存在于系统中,通过该客户端子程序与被监控的各个程序进行通信,根据所获取的对应进程间通信状态的信息,下发对应的修复指令,以便系统能够对进程间通信所出现的调用堵塞问题进行异常修复。
参照图2,图2为本申请一个实施例所提供的进程间通信的异常修复方法的流程示意图。
本申请实施例所提供的进程间通信的异常修复方法,包括以下步骤:
S210、在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程。
基于本申请上述所提供的系统框架,客户端子程序与各自的进程链接,通过客户端子程序获取对应进程的状态信息,该状态信息可以为当前进程是否处于进程间通信的状态信息、进程间通信是否正常的状态信息和调用接口信息等。服务端子程序通过与其互联的客户端子程序,获取与该客户端子程序链接的对于进程的状态信息,根据该状态信息,服务端子程序可以确认该进程的进程间通信状态是否异常。
进程间通信中的同步调用是指一个进程向其他进程发起调用,如图中,进程B调用了进程A,进程C调用了进程B。在本申请中,第一进程为发起调用的进程,第二进程是被第一进程调用的其他进程,与该第一进程链接的为第一客户端子程序,与该第二进程链接的为第二客户端子程序。
参照图3,图3为本申请一个实施例所提供的对第一进程进行监控的时序图。
在本申请的实施例中,由于每个被监控的进程均链接各自的客户端子程序,当第一进程向第二进程发起调用时,该第一客户端子程序将第一进程的调用状态信息写入内存中,以供服务端子程序对第一进程的状态实现监控。
进一步地,在第一进程调用第二进程的时候,第一客户端子程序同时启动定时器,对每一次调用监控进行计时。若服务端子程序在设定时间内通过第一客户端子程序得到第一进程反馈的调用接口信息,则确定该第一进程的进程间通信状态为正常,该第一客户端子程序清除定时器的计时信息和本次第一进程的调用信息。否则执行步骤S220。
除了上述在第一进程向第二进程发起调用时,利用第一客户端子程序实时根据调用接口信息实现对第一进程当前的进程间通信状态进行监控以外,还能够通过服务端子程序进行主动监控。
参照图4,图4为本申请另一个实施例所提供的对第一进程进行监控的时序图。
通过服务端子程序进行主动监控,可以定期向所述第一客户端子程序发送对所述第一进程发出进程间通信状态的查询指令;若在设定时间内未接收所述第一客户端子程序返回的所述第一进程通信状态正常的反馈信息;确定所述第一进程的进程间通信状态出现异常。
在本实施例中,服务端子程序启动定时器每隔设定时长向第一客户端子程序发送对第一进程发出进程间通信状态的查询指令,如该设定查询间隔为M秒,若连续多次,如连续N次对第一进程发出进程间通信状态的查询指令,即在设定时间N*M秒内服务端子程序仍不能通过第一客户端子程序接收到第一进程响应查询指令所返回的进程间通信状态信息,确认该第一进程的进程间通信状态出现异常。触发执行步骤S220。
若在设定时间N*M秒内服务端子程序能够通过第一客户端子程序接收到第一进程响应查询指令所返回的进程间通信状态信息,确定该第一进程的进程间通信状态为正常,该第一客户端子程序清除定时器的计时信息和本次第一进程的调用信息。
对于进程间通信中的其他进程,也可以根据上述方式进行监控。
在本实施例中,若上述两种对第一进程进行监控的方式同时发起,即通过第一进程调用时所产生的调用状态信息进行监控的同时,又接收到服务端子程序向所述第一客户端子程序发送对所述第一进程发出进程间通信状态的查询指令时,执行前者的监控操作,以减少系统所产生的数据信息,减轻系统的负荷。
S220、向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复。
根据第一进程的进程间通信状态出现异常的确认信息,服务端子程序创建管道向第一客户端子程序发出通知并下发修复指令,通过第一客户端子程序回调至第一进程,第一进程根据该修改指令,进行异常修复。若修复成功,该第一进程继续进行进程间通信,实现对第二进程的调用,并清除上一次的异常记录。
本申请的实施例中,在系统中添加对进程间通信的各个进程链接对应的客户端子程序,以及与多个进程的客户端子程序互联的服务端子程序,实现对每个进程的进程间通信状态进行监控,并确认异常时下发修改指令进行异常修复,实现系统无需重启或增加额外的资源以添加链路来应对进程间调用的堵塞问题,在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的,从而提高用户的使用体验。
在上述实施例中,无论是在第一进程发起调用时,还是通过服务端子程序主动向第一进程发起进程间通信状态的查询的监控方式,当确认第一进程的进程间通信状态存在异常时,上述的步骤S220可进一步包括:向所述第一客户端子程序下发所述第一进程的进程间通信异常的监测结果;其中,所述第一客户端子程序将所述监测结果回调给所述第一进程,通知所述第一进程进行自我修复;接收所述第一客户端子程序返回的第一修复结果信息。
在本实施例中,当服务端子程序确定第一进程的进程间通信状态出现异常时,根据异常的监测结果,生成包含该监测结果的自我修复指令,并通过所创建与第一客户端子程序的管道发出该自我修复指令,第一进程通过第一客户端子程序的回调得到的修复指令,并获取监测结果,根据该监测结果进行自我修复。
根据该监测结果,若是因第一进程或第二进程的原因所造成的堵塞所导致进程间通信状态出现异常的情况,则第一进程可通过进程之间的调用接口信息,重新发起调用。
若是因通信链路的原因所造成的堵塞所导致进程间通信状态出现异常的情况,则第一进程可对当前进行的进程间通信进行返初始化,对原来进程之间的通信链路进行断链,并重新建立进程之间的通信链路,在重新建立的通信链路的基础上进行进程间通信。
第一进程进行自我修复后,将自我修复的结果通过对应的第一客户端子进程存储于内存中,服务端子程序能够通过第一客户端子进程获取对应的第一修复结果信息。
对于第一修复结果信息,也可以重复上述的监控操作的监控结果得到。
上述关于第一进程的自我修复方式不限于上述具体的例子,其他关于进程的自我修复方法也同样适用。
参照图5,图5为本申请一个实施例所提供的异常修复方法的时序图。
当服务端子程序确定第一进程的进程间通信状态出现异常时,或者根据第一修复结果信息,服务端子程序确定第一进程的自我修复不成功时,步骤S220能够进一步包括:
接收所述第一客户端子程序返回的进程数据包,并向第二客户端子程序发送第一进程的第一异常信息;
通知第二进程依据所述第一异常信息对所述第一进程进行异常修复;
其中,所述第二进程为第一进程调用的进程,所述第二客户端子程序是独立运行的系统子程序,所述第二客户端子程序链接所述第二进程。
在本实施例中,第一进程根据由第一客户端子程序回调的进程间通信状态异常的确认信息,将进程间通信的所产生的信息生成进程数据包,并通过第一客户端子程序返回至服务端子程序。
在本实施例中,该进程数据包包括第一进程下一次恢复所需恢复的数据、进程间通信堵塞前的最后一次调用函数信息,以及进程间通信堵塞前最后一次通信的第二进程。
服务端子程序接收到由第一客户端子程序转发的进程数据包时,可以通过该进程数据包得到第一进程进程间通信堵塞前最后一次通信的第二进程,利用第二进程对第一进程进行异常修复,具体地,服务端子程序将第一进程进程间通信堵塞前最后一次通信异常所产生的第一异常信息,通过第二客户端子程序向第二进程转发,使得第二进程依据该第一异常信息对第一进程进行异常修复。
对于上述利用第二进程对第一进程进行异常修复,可以更进一步包括:
通知所述第二客户端子程序将所述第一异常信息发送至第二进程;其中,所述第二进程查询自身进程间通信状态并追踪堵塞第一进程的调用接口,对所述调用接口进行异常处理并放弃当次第一进程的调用;
接收所述第二客户端子程序返回的第二进程的放弃第一进程调用的确认信息,通过所述第一客户端子程序再次启动所述第一进程调用所述第二进程;其中,若第一进程再次调用成功,继续执行进程间通信;若第一进程调用失败,通知第一进程重启。
在本实施例中,第二进程根据接收到该第一异常信息时,查询自身进程间通信状态,并根据自身与其他进程之间的通信链路,追踪得到堵塞第一进程调用第二进程的调用接口。根据所查询得到到调用接口,对应放弃当前发生堵塞的第一进程调用,以释放进程资源。
第二进程通过第二客户端子程序将当前发生堵塞的第一进程的放弃调用信息写入内存。当服务端子程序通过内存获取该放弃调用信息时,在内存获取第一进程的调用信息,通过第一客户端子程序向第一进程下发再次发送针对第二进程的调用指令。第一进程根据该调用指令,再次向第二进程发起调用。同时,服务端子程序可根据上述提供的监控方式,监控当前调用是否正常。若第一进程此次调用成功,该进程间通信继续执行。若第一进程调用失败,服务端子程序根据向第一客户端子程序获取该调用失败的信息,向第一进程下发重启指令。
对于重启指令的执行,可以进一步包括以下步骤:
将所述进程数据包下发至所述第一客户端子程序转发给所述第一进程,使得所述第一进程依据所述进程数据包进行重启;
接收所述第一客户端子程序反馈的重启运行结果,若第一进程经过重启后异常修复不成功,启动系统重启流程,并在系统中记录第一进程重启无法恢复的日志。
当第一进程接收到重启指令后,通过第一客户端子程序的转发从服务端子程序获取重启前所生成的进程数据包,得到进程间通信待恢复的数据,并根据该进程数据包中待恢复的数据,重新建立各个进程之间所建立的通信链路,并且根据进程数据包中得到所需调用的第二进程和对应的调用任务信息。根据调用任务信息重新启动第一进程对第二进程发起调用。第一进程重新发起调用的同时,第一客户端子程序将重启运行结果,可包括对应的进程间通信状态信息和调用接口信息等写入内存,使得服务端子程序能够监控重启后进程间通信的状态。
在上述所提供的实施例中,根据第一进程当前的进程间通信的状态信息,可经历自我修复、再次尝试调用和重启进程中至少一种方式,针对所出现异常的第一进程进行异常修复。而上述异常修复均在后台进行,不会反映在用户操作界面,或需要用户下发操作指令,从而实现了系统根据进程的通信状态信息进行自动修复的目的,避免影响用户的正常使用,从而提升用户的使用体验。
在进程重启后,若第一进程仍调用失败,即进程间通信仍不能成功恢复,在服务端子程序的作用下启动系统重启,并在系统上记录故障日志,用于记录第一进程重启无法恢复的数据信息。
基于与上述埋点事件信息的识别方法相同的申请构思,本申请实施例还提供了一种进程间通信的异常修复装置600。参考图6,图6为本申请一个实施例所提供的进程间通信的异常修复装置的结构示意图。
异常确认模块610,用于在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程;
异常修复模块620,用于向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复;其中,所述第一客户端子程序链接所述第一进程。
本申请实施例所提供的进程间通信的异常修复装置600,在系统中添加对进程间通信的各个进程链接对应的客户端子程序,以及与多个进程的客户端子程序互联的服务端子程序,实现对每个进程的进程间通信状态进行监控,并确认异常时下发修改指令进行异常修复,实现系统无需重启或增加额外的资源以添加链路来应对进程间调用的堵塞问题,在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的,从而提高用户的使用体验。
基于与本申请实施例中所示的方法相同的原理,本申请实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的方法。与现有技术相比,本申请实施例中的电子设备能够在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的。
参照图7,图7为本申请一个实施例所提供的一种进程间通信的异常修复的电子设备的结构示意图。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例中的计算机可读存储介质能够在用户不察觉的情况下系统实现自动修复,恢复进程间通信的目的。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (9)

1.一种进程间通信的异常修复方法,其特征在于,应用于与各个进程链接的客户端子程序和与其互联的服务端子程序,所述服务端子程序和第一客户端子程序是独立运行的系统子程序;
所述方法包括以下步骤:
在多进程间通信中,通过所述第一客户端子程序确定进程间通信状态出现异常的第一进程;
向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复,包括:接收所述第一客户端子程序返回的进程数据包,并向第二客户端子程序发送第一进程的第一异常信息;
通知第二进程依据所述第一异常信息对所述第一进程进行异常修复,包括:通知所述第二客户端子程序将所述第一异常信息发送至第二进程;其中,所述第二进程查询自身进程间通信状态并追踪堵塞第一进程的调用接口,对所述接口进行异常处理并放弃当次第一进程的调用;
接收所述第二客户端子程序返回的第二进程的放弃第一进程调用的确认信息,通过所述第一客户端子程序再次启动所述第一进程调用所述第二进程;其中,若第一进程再次调用成功,继续执行进程间通信;若第一进程调用失败,通知第一进程重启;
其中,所述第二进程为第一进程调用的进程,所述第二客户端子程序是独立运行的系统子程序,所述第二客户端子程序链接所述第二进程;
所述第一客户端子程序链接所述第一进程。
2.根据权利要求1所述的进程间通信的异常修复方法,其特征在于,在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程的步骤,包括:
获取由所述第一客户端子程序写入的在所述第一进程发起调用时产生的调用状态信息;
若在设定时间内未接收所述第一客户端子程序返回的所述第一进程的调用接口信息,确定所述第一进程的进程间通信状态出现异常。
3.根据权利要求1所述的进程间通信的异常修复方法,其特征在于,在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程的步骤,包括:
定期向所述第一客户端子程序发送对所述第一进程发出进程间通信状态的查询指令;
若在设定时间内未接收所述第一客户端子程序返回的所述第一进程通信状态正常的反馈信息,确定所述第一进程的进程间通信状态出现异常。
4.根据权利要求2或3其中一项所述的进程间通信的异常修复方法,其特征在于,所述向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复的步骤,包括:
向所述第一客户端子程序下发所述第一进程进程间通信异常的监控结果;其中,所述第一客户端子程序将所述监控结果回调给所述第一进程,通知所述第一进程进行自我修复;
接收所述第一客户端子程序返回的第一修复结果信息。
5.根据权利要求1所述的进程间通信的异常修复方法,其特征在于,还包括:
将所述进程数据包下发至所述第一客户端子程序转发给所述第一进程,使得所述第一进程依据所述进程数据包进行重启;
接收所述第一客户端子程序反馈的重启运行结果,若第一进程经过重启后异常修复不成功,启动系统重启流程,并在系统中记录第一进程重启无法恢复的日志。
6.根据权利要求5所述的进程间通信的异常修复方法,其特征在于,所述进程数据包包括:第一进程下一次恢复所需恢复的数据、进程间通信堵塞前的最后一次调用函数信息,以及进程间通信堵塞前最后一次通信的第二进程。
7.一种进程间通信的异常修复装置,其特征在于,应用于与各个进程链接的客户端子程序和与其互联的服务端子程序,所述服务端子程序和第一客户端子程序是独立运行的系统子程序;
所述装置包括:
异常确认模块,用于在多进程间通信中,通过第一客户端子程序确定进程间通信状态出现异常的第一进程;
异常修复模块,用于向所述第一客户端子程序下发修复指令,通过所述第一客户端子程序将修复指令发送至所述第一进程进行异常修复,包括:接收所述第一客户端子程序返回的进程数据包,并向第二客户端子程序发送第一进程的第一异常信息;
通知第二进程依据所述第一异常信息对所述第一进程进行异常修复,包括:通知所述第二客户端子程序将所述第一异常信息发送至第二进程;其中,所述第二进程查询自身进程间通信状态并追踪堵塞第一进程的调用接口,对所述接口进行异常处理并放弃当次第一进程的调用;
接收所述第二客户端子程序返回的第二进程的放弃第一进程调用的确认信息,通过所述第一客户端子程序再次启动所述第一进程调用所述第二进程;其中,若第一进程再次调用成功,继续执行进程间通信;若第一进程调用失败,通知第一进程重启;
其中,所述第二进程为第一进程调用的进程,所述第二客户端子程序是独立运行的系统子程序,所述第二客户端子程序链接所述第二进程;所述第一客户端子程序链接所述第一进程。
8.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1~6任一项所述的进程间通信的异常修复方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~6任一项所述的进程间通信的异常修复方法。
CN202010712125.2A 2020-07-22 2020-07-22 进程间通信的异常修复方法、装置、电子设备及存储介质 Active CN111858177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010712125.2A CN111858177B (zh) 2020-07-22 2020-07-22 进程间通信的异常修复方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010712125.2A CN111858177B (zh) 2020-07-22 2020-07-22 进程间通信的异常修复方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111858177A CN111858177A (zh) 2020-10-30
CN111858177B true CN111858177B (zh) 2023-12-26

Family

ID=72949175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010712125.2A Active CN111858177B (zh) 2020-07-22 2020-07-22 进程间通信的异常修复方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111858177B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697377B (zh) * 2022-04-07 2023-09-05 深信服科技股份有限公司 一种客户端产品的保活方法、系统、装置及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777020A (zh) * 2009-12-25 2010-07-14 北京讯鸟软件有限公司 一种用于分布式程序的容错方法和系统
WO2015096412A1 (zh) * 2013-12-27 2015-07-02 中兴通讯股份有限公司 数据复制异常的修复方法及装置
CN109388430A (zh) * 2017-08-02 2019-02-26 丰郅(上海)新能源科技有限公司 实现微处理器对外设硬件控制的方法
CN110362418A (zh) * 2019-07-09 2019-10-22 腾讯科技(深圳)有限公司 一种异常数据恢复方法、装置、服务器及存储介质
CN110659159A (zh) * 2019-09-05 2020-01-07 苏州浪潮智能科技有限公司 一种服务进程运行监控方法、装置、设备及存储介质
CN110908837A (zh) * 2019-11-15 2020-03-24 珠海豹趣科技有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN111064590A (zh) * 2018-10-16 2020-04-24 腾讯科技(深圳)有限公司 异常状态的修复方法、装置及可读存储介质
CN111324423A (zh) * 2020-03-03 2020-06-23 腾讯科技(深圳)有限公司 容器内进程的监控方法、装置、存储介质和计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032900B2 (en) * 2006-08-02 2011-10-04 Microsoft Corporation Conducting client-server inter-process communication
KR102008208B1 (ko) * 2018-02-02 2019-08-07 서울대학교 산학협력단 무선 네트워크 구축 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777020A (zh) * 2009-12-25 2010-07-14 北京讯鸟软件有限公司 一种用于分布式程序的容错方法和系统
WO2015096412A1 (zh) * 2013-12-27 2015-07-02 中兴通讯股份有限公司 数据复制异常的修复方法及装置
CN109388430A (zh) * 2017-08-02 2019-02-26 丰郅(上海)新能源科技有限公司 实现微处理器对外设硬件控制的方法
CN111064590A (zh) * 2018-10-16 2020-04-24 腾讯科技(深圳)有限公司 异常状态的修复方法、装置及可读存储介质
CN110362418A (zh) * 2019-07-09 2019-10-22 腾讯科技(深圳)有限公司 一种异常数据恢复方法、装置、服务器及存储介质
CN110659159A (zh) * 2019-09-05 2020-01-07 苏州浪潮智能科技有限公司 一种服务进程运行监控方法、装置、设备及存储介质
CN110908837A (zh) * 2019-11-15 2020-03-24 珠海豹趣科技有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN111324423A (zh) * 2020-03-03 2020-06-23 腾讯科技(深圳)有限公司 容器内进程的监控方法、装置、存储介质和计算机设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Toward Automated Dynamic Malware Analysis Using CWSandbox;Carsten Willems等;《IEEE Security & Privacy》;第5卷(第2期);32-39 *
基于智能云测试平台通信模块的设计;王亮等;《计算机测量与控制》;第27卷(第12期);24-28 *
面向实时嵌入式操作系统的进程机制;周昕等;《计算机工程》;第36卷(第15期);51-54 *

Also Published As

Publication number Publication date
CN111858177A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
KR100599912B1 (ko) 복제 서버용 프로토콜
US6622261B1 (en) Process pair protection for complex applications
CN102360324B (zh) 故障恢复方法和用于故障恢复的设备
JP2001101033A (ja) オペレーティングシステム及びアプリケーションプログラムの障害監視方法
JPH10214199A (ja) プロセスリスタート方法およびプロセスリスタートを実現するためのシステム
US8510755B2 (en) Automatically re-starting services
US7886181B2 (en) Failure recovery method in cluster system
US6185702B1 (en) Method and system for process state management using checkpoints
CN111143170A (zh) 云手机监控系统和方法
CN111858177B (zh) 进程间通信的异常修复方法、装置、电子设备及存储介质
JP2000194678A (ja) クラスタコンピュ―タシステムにおける高度に利用可能な非同期i/o
CN115016922B (zh) 一种行为识别方法及电子设备
JP2005301436A (ja) クラスタシステムおよびクラスタシステムにおける障害回復方法
CN109684128B (zh) 消息中间件的集群整体故障恢复方法、服务器及存储介质
CN110287159B (zh) 一种文件处理方法及装置
CN111880947A (zh) 一种数据传输方法及装置
JP2007265137A (ja) マルチタスク処理方法及びマルチタスク処理装置
WO2022222968A1 (zh) 会议通话的恢复方法、装置、系统、电子设备和可读存储介质
JP2004258936A (ja) モバイル通信端末及びそれに用いるフェイルセーフ方法並びにそのプログラム
WO2022022442A1 (zh) 数据处理方法、装置、智能网卡和服务器
US6651185B1 (en) High availability platform with fast recovery from failure by reducing non-response time-outs
CN111385478B (zh) 终端远程控制方法、装置、智能卡、控制终端和介质
JP2002149437A (ja) ソフトウェア再起動方法
US11954509B2 (en) Service continuation system and service continuation method between active and standby virtual servers
JPH0879246A (ja) 分散型通信システムおよびその障害回復方法

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
GR01 Patent grant
GR01 Patent grant