The invention provides a smooth upgrading method and device for application programs. The methods include: when the running parent process receives a smooth upgrade instruction to its corresponding application, the position information of the precompiled, application upgraded executable file carried in the smooth upgrade instruction is obtained; the parent process continues to maintain the running state based on the smooth upgrade instruction, and according to the location letter. The executable file is taken and run to create a child process of the parent process; the parent process gets the running parameters of the current run and passes the running parameters to the sub process to make the sub process create a matched running environment based on the running parameters; the subprocess creates the running environment based on the running parameters and handles the new in the running environment. The client requests and sends out the exit instructions to the parent process; the parent process executes the exit operation based on the received exit instructions and completes the smooth upgrade of the application. The technology scheme achieves smooth upgrade of application programs.
【技术实现步骤摘要】
应用程序的平滑升级方法及装置
本专利技术涉及程序开发
,特别是涉及一种应用程序的平滑升级方法及装置。
技术介绍
编译型语言开发的程序需要编译成可执行的程序文件,然后执行程序文件来启动程序进程,进程是程序执行中的实例,当程序的所有指令执行完毕后进程会退出。当程序源代码有更新时,需要编译成新的可执行文件,并启动新的进程。现有技术中,服务端程序通常以守护进程的方式启动执行,守护进程是一种在后台持续运行的特殊进程,即,监听一个固定的端口,等待接收、处理和响应客户端发出的请求。正常情况下进程会一直运行,当需要升级程序时,因一个端口同一时间只能被一个进程直接监听,因此需要先关闭老程序执行中的进程,然后再执行新程序启动新的进程,以实现程序的升级。显然,在上述先关闭运行中的进程再启动新进程而升级程序的过程中,存在一段时间没有进程可以处理客户端的请求,从而影响用户的网络使用体验,尤其是对于访问量较大的面向用户的产品,更容易因中断服务而给用户带来不便。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的应用程序的平滑升级方法及装置。依据本专利技术的一个方面,提供了一种应用程序的平滑升级方法,包括:当正在运行的父进程接收对其对应的应用程序的平滑升级指令时,获取所述平滑升级指令中携带的预先编译的、所述应用程序升级后的可执行文件的位置信息;所述父进程根据所述平滑升级指令继续保持运行状态,并根据所述位置信息调取所述可执行文件并运行,以创建所述父进程的子进程;所述父进程获取当前运行的运行参数,并将所述运行参数传递至所述子进程,以使所述子进 ...
【技术保护点】
1.一种应用程序的平滑升级方法,包括:当正在运行的父进程接收对其对应的应用程序的平滑升级指令时,获取所述平滑升级指令中携带的预先编译的、所述应用程序升级后的可执行文件的位置信息;所述父进程根据所述平滑升级指令继续保持运行状态,并根据所述位置信息调取所述可执行文件并运行,以创建所述父进程的子进程;所述父进程获取当前运行的运行参数,并将所述运行参数传递至所述子进程,以使所述子进程根据所述运行参数创建匹配的运行环境;所述子进程根据所述运行参数创建运行环境,并在所述运行环境下处理新的客户端请求,以及向所述父进程发送退出指令;所述父进程根据接收到的所述退出指令执行退出操作,完成所述应用程序的平滑升级。
【技术特征摘要】
1.一种应用程序的平滑升级方法,包括:当正在运行的父进程接收对其对应的应用程序的平滑升级指令时,获取所述平滑升级指令中携带的预先编译的、所述应用程序升级后的可执行文件的位置信息;所述父进程根据所述平滑升级指令继续保持运行状态,并根据所述位置信息调取所述可执行文件并运行,以创建所述父进程的子进程;所述父进程获取当前运行的运行参数,并将所述运行参数传递至所述子进程,以使所述子进程根据所述运行参数创建匹配的运行环境;所述子进程根据所述运行参数创建运行环境,并在所述运行环境下处理新的客户端请求,以及向所述父进程发送退出指令;所述父进程根据接收到的所述退出指令执行退出操作,完成所述应用程序的平滑升级。2.根据权利要求1所述的方法,其中,所述父进程根据所述位置信息调取所述可执行文件并运行,包括:所述父进程调用fork函数,并利用所述fork函数创建新的子进程;利用所述新的子进程读取所述位置信息指向的可执行文件,并运行所述读取到的可执行文件。3.根据权利要求1或2所述的方法,其中,所述运行参数包括所述父进程所监听的指定端口和/或运行资源的文件描述符,所述运行资源包括文本段、数据段、栈、堆中的至少一项。4.根据权利要求3所述的方法,其中,所述子进程根据所述运行参数创建运行环境,包括:所述子进程继承所述父进程所传递的文件描述符;确定所述文件描述符指向的指定端口;创建所述子进程与所述指定端口之间的监听关系,以使所述子进程能够在所述监听关系下监听所述指定端口。5.根据权利要求1所述的方法,其中,所述父进程根据接收到的所述退出指令执行退出操作,包括:所述父进程停止接收新的客户端请求,并判断当前是否有未处理完成的客户端请求;若是,则继续处理所述未完成的客户...
【专利技术属性】
技术研发人员:谭艳平,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。