进程守护方法及装置制造方法及图纸

技术编号:15437061 阅读:80 留言:0更新日期:2017-05-25 19:15
本发明专利技术公开了一种进程守护方法及装置,属于计算机技术领域。该方法包括:应用程序进程向系统进程注入指定程序;该指定程序向Binder驱动程序注册对该应用程序进程的死亡消息通知,使得当该Binder驱动程序确定该应用程序进程死亡时,向该指定程序发送死亡消息通知;该指定程序接收到该死亡消息通知时,启动该应用程序进程,实现对该应用程序进程的守护。本发明专利技术通过注入该指定程序并采用Binder机制,保证了指定程序能够及时准确地感知应用程序进程的死亡,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。

Process monitoring method and device

The invention discloses a method and a device for monitoring a process, belonging to the technical field of computers. The method includes: the application process to the system into the process of the specified program; the specified program to the Binder driver registration notice of the death of the application process, so that when the Binder driver is identified in the application process of death, sent to the specified program of death notification; the specified program receives the notification message of death when starting the application process, realize the application process of the guardian. By injecting the designated program and adopting the Binder mechanism, the invention ensures that the designated program can sense the death of the application process in a timely and accurate manner, and realizes the daemon of the designated program to the application process. No need to create a special daemon daemon can avoid to be recycled, and the daemon state without cycle monitoring application process in the process of reducing the system resources, and improves the system performance.

【技术实现步骤摘要】
进程守护方法及装置
本专利技术涉及计算机
,特别涉及一种进程守护方法及装置。
技术介绍
终端的系统中通常会运行多个应用程序进程,不同的应用程序进程可以实现不同的功能,当某个应用程序进程死亡时,可能会对系统的正常运行造成影响,此时就需要重新启动该应用程序进程。而为了准确感知到该应用程序进程的死亡,并及时地启动该应用程序进程,可以采用进程守护技术对该应用程序进程进行监听。以第一进程和第二进程为例,第一进程创建第二进程,此时第一进程成为父进程,第二进程成为子进程,第一进程和第二进程之间建立继承关系,第二进程可以作为第一进程的守护进程。在系统运行过程中,第二进程循环监听第一进程的进程状态,根据监听的进程状态来判断第一进程是否死亡,一旦第一进程死亡,第二进程会监控到第一进程的死亡,并重新启动第一进程。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下缺陷:第二进程需要循环地监听第一进程的进程状态,占用了过多的系统资源,耗费系统性能。而且,当第一进程死亡时,系统可能会将第二进程回收,导致第二进程无法重新启动第一进程。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种进程守护方法及装置。所述技术方案如下:第一方面,提供了一种进程守护方法,所述方法包括:应用程序进程向系统进程注入指定程序;所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,使得当所述Binder驱动程序确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;所述指定程序接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。第二方面,提供了一种进程守护装置,所述装置包括:应用程序进程、Binder驱动程序、系统进程和指定程序;所述应用程序进程用于向所述系统进程注入所述指定程序;所述指定程序用于在运行过程中,向所述Binder驱动程序注册对所述应用程序进程的死亡消息通知;所述Binder驱动程序用于确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;所述指定程序用于接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。本专利技术实施例提供的技术方案带来的有益效果是:本专利技术实施例提供的方法及装置,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本专利技术在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,实现了应用程序进程与指定程序之间的通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地启动该应用程序进程,实现了指定程序对该应用程序进程的守护。无需创建一个专门的守护进程,既能够节省系统资源,也能够避免守护进程被回收的问题,而且守护过程中无需循环地监听应用程序进程的进程状态,减少了占用的系统资源,提升了系统性能。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种系统架构示意图;图2是本专利技术实施例提供的一种进程守护方法的流程图;图3是本专利技术实施例提供的一种进程守护方法的流程图;图4是本专利技术实施例提供的示例性操作流程图;图5是本专利技术实施例提供的一种进程守护装置结构示意图;图6是本专利技术实施例提供的一种终端的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1是本专利技术实施例提供的一种系统架构示意图,参见图1,该系统提供了Binder机制,通过Binder机制可以实现进程之间的通信。该系统包括:应用程序进程、指定程序、Binder驱动程序、ServiceManager。Binder机制采用Client-Server(客户端-服务器)通信模式,应用程序进程作为Client端,指定程序作为Server端,两者之间通过Binder驱动程序进行通信。其中,应用程序进程、指定程序、Binder驱动程序位于用户空间,ServiceManager位于内核空间。相关技术中,Client端要将一块内存数据传递给Server端,一般的方法是,Client端将这块数据从Client端的进程空间拷贝到内核空间中,然后内核再将这块数据从内核空间拷贝到Server端的进程空间,如此,Server端就可以访问这块数据了,但是该方法执行了两次内存拷贝操作。而Binder机制只需要把Client端进程空间的数据拷贝一次到内核空间,然后Server端与内核共享这块数据即可,整个过程只需要执行一次内存拷贝操作,提高了操作效率。ServiceManager是整个Binder机制的守护进程,用于管理开发者创建的各种Binder服务,并向Client端提供查询Server远程接口的功能,应用程序进程可以在ServiceManager查询到Binder服务的代理对象。指定程序向系统进程注册Binder服务,应用程序进程从ServiceManager获取到该Binder服务的代理对象后,即可通过调用该代理对象向指定程序发起请求,则代理对象向Binder驱动程序发送该请求,Binder驱动程序会将该请求转发给指定程序,指定程序处理该请求后,会将处理结果通过Binder驱动程序返回给应用程序进程的代理对象,从而实现应用程序进程与指定程序之间的进程间通信。本专利技术实施例中不仅能够实现应用程序进程与指定程序之间的通信,而且,指定程序在获取到应用程序进程的Binder服务的代理对象之后,在Binder驱动程序注册对该代理对象的死亡消息通知,从而能够及时感知到应用程序进程的死亡,实现了对应用程序进程的守护。具体的操作过程详见下述方法实施例。图2是本专利技术实施例提供的一种进程守护方法的流程图,参见图2,该方法包括:201、应用程序进程向系统进程注入指定程序。202、该指定程序在运行过程中,向Binder驱动程序注册对该应用程序进程的死亡消息通知,使得当该Binder驱动程序确定该应用程序进程死亡时,向该指定程序发送死亡消息通知。203、该指定程序接收到该死亡消息通知时,启动该应用程序进程,实现对该应用程序进程的守护。本专利技术实施例提供的方法,通过应用程序进程向已有的系统进程注入指定程序,由指定程序在Binder驱动程序中注册对应用程序进程的死亡消息通知,当应用程序进程死亡时,Binder驱动程序向指定程序发送死亡消息通知,指定程序即可接收该死亡消息通知时,重新启动该应用程序进程。本专利技术在已有的系统进程中注入指定程序,通过该指定程序并采用Binder机制,实现了应用程序进程与指定程序之间的通信,保证了指定程序能够及时准确地感知应用程序进程的死亡,从而及时地本文档来自技高网...
进程守护方法及装置

【技术保护点】
一种进程守护方法,其特征在于,所述方法包括:应用程序进程向系统进程注入指定程序;所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,使得当所述Binder驱动程序确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;所述指定程序接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。

【技术特征摘要】
1.一种进程守护方法,其特征在于,所述方法包括:应用程序进程向系统进程注入指定程序;所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,使得当所述Binder驱动程序确定所述应用程序进程死亡时,向所述指定程序发送死亡消息通知;所述指定程序接收到所述死亡消息通知时,启动所述应用程序进程,实现对所述应用程序进程的守护。2.根据权利要求1所述的方法,其特征在于,所述应用程序进程向系统进程注入指定程序,包括:所述应用程序进程将所述指定程序拷贝到所述系统进程的内存空间中,并运行所述指定程序。3.根据权利要求1所述的方法,其特征在于,所述指定程序在运行过程中,向Binder驱动程序注册对所述应用程序进程的死亡消息通知,包括:所述指定程序向所述系统进程注册第一Binder服务;所述应用程序进程获取所述第一Binder服务的第一代理对象;所述应用程序进程通过调用所述第一代理对象,向所述指定程序发送所述应用程序进程所创建的第二Binder服务的第二代理对象;所述指定程序获取到所述第二代理对象后,向所述Binder驱动程序注册对所述第二代理对象的死亡消息通知。4.根据权利要求3所述的方法,其特征在于,所述应用程序进程获取所述第一Binder服务的第一代理对象,包括:所述应用程序进程向服务管家ServiceManager查询所述第一Binder服务,由所述ServiceManager根据预设映射表,返回所述第一Binder服务的第一代理对象,所述预设映射表中包括已注册的Binder服务以及对应的代理对象。5.根据权利要求3所述的方法,其特征在于,所述指定程序获取到所述第二代理对象后,向所述Binder驱动程序注册对所述第二代理对象的死亡消息通知,包括:所述指定程序实现死亡消息通知接口;当所述指定程序获取到所述第二代理对象后,调用关联函数,将所述第二代理对象与所述死亡消息通知接口关联,使得当所述Binder驱动程序确定所述第二代理对象死亡时,调用所述死...

【专利技术属性】
技术研发人员:谢文军
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1