掌桥专利:专业的专利平台
掌桥专利
首页

程序的更新方法及装置

文献发布时间:2023-06-19 11:54:11


程序的更新方法及装置

技术领域

本发明涉及计算机技术领域,具体而言,涉及一种程序的更新方法及装置。

背景技术

很多程序在投入使用后,随着用户需求或者开发者对程序的进一步完整,需要对已投放使用的程序进行更新,以为用户提供体验更好的程序。相关技术中,当开发者根据需求对程序已经更新或升级后,可以将升级或更新后的程序下发至用户端,用户端若要更新或升级程序,需要先手动关闭旧版本的程序,然后再将新的程序上传到需要更新程序的终端或服务器,在完成安装后启动,这样操作会消耗较长的时间,而且容易出现失误。

针对上述相关技术中使用人工手动方式进行程序更新容易出现失误,可靠性较低的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种程序的更新方法及装置,以至少解决相关技术中使用人工手动方式进行程序更新容易出现失误,可靠性较低的技术问题。

根据本发明实施例的一个方面,提供了一种程序的更新方法,包括:确定待更新JAVA程序处于开启状态;关闭所述待更新JAVA程序;将所述待更新JAVA程序的更新文件发送至目标服务器;在所述目标服务器上启动所述更新文件,以对所述待更新JAVA程序进行自动更新。

可选地,在确定待更新JAVA程序处于开启状态之前,该程序的更新方法还包括:建立与所述目标服务器的远程连接关系。

可选地,在确定待更新JAVA程序处于开启状态之后,该程序的更新方法还包括:获取所述待更新JAVA程序的进程控制符PID;基于所述PID生成预定控制指令;控制所述目标服务器运行所述预定控制指令。

可选地,关闭所述待更新JAVA程序,包括:确定所述目标服务器响应于所述预定控制指令;对所述目标服务器运行所述预定控制指令的运行操作进行监测;在监测结果表示所述目标服务器成功运行所述预定控制指令,确定所述待更新JAVA程序处于关闭状态。

可选地,将所述待更新JAVA程序的更新文件发送至目标服务器,包括:编写基于scp命令的远程拷贝指令;通过所述远程拷贝指令将所述待更新JAVA程序的更新文件发送至所述目标服务器。

可选地,在所述目标服务器上启动所述更新文件,以对所述待更新JAVA程序进行自动更新,包括:编写基于java-jar的远程启动指令;通过所述远程启动指令在所述目标服务器上启动所述更新文件,以对所述待更新JAVA程序进行自动更新。

根据本发明实施例的另外一个方面,还提供了一种程序的更新装置,包括:确定单元,用于确定待更新JAVA程序处于开启状态;关闭单元,用于关闭所述待更新JAVA程序;发送单元,用于将所述待更新JAVA程序的更新文件发送至目标服务器;更新单元,用于在所述目标服务器上启动所述更新文件,以对所述待更新JAVA程序进行自动更新。

可选地,该程序的更新装置还包括:建立单元,用于在确定待更新JAVA程序处于开启状态之前,建立与所述目标服务器的远程连接关系。

可选地,该程序的更新装置还包括:获取单元,用于在确定待更新JAVA程序处于开启状态之后,获取所述待更新JAVA程序的进程控制符PID;生成单元,用于基于所述PID生成预定控制指令;控制单元,用于控制所述目标服务器运行所述预定控制指令。

可选地,所述关闭单元,包括:第一确定模块,用于确定所述目标服务器响应于所述预定控制指令;监测模块,用于对所述目标服务器运行所述预定控制指令的运行操作进行监测;第二确定模块,用于在监测结果表示所述目标服务器成功运行所述预定控制指令,确定所述待更新JAVA程序处于关闭状态。

可选地,所述发送单元,包括:第一编写模块,用于编写基于scp命令的远程拷贝指令;发送模块,用于通过所述远程拷贝指令将所述待更新JAVA程序的更新文件发送至所述目标服务器。

可选地,所述更新单元,包括:第二编写模块,用于编写基于java-jar的远程启动指令;更新模块,用于通过所述远程启动指令在所述目标服务器上启动所述更新文件,以对所述待更新JAVA程序进行自动更新。

根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述计算机可读存储介质所在设备执行上述中任一项所述的程序的更新方法。

根据本发明实施例的另外一个方面,还提供了一种处理器,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述中任一项所述的程序的更新方法。

在本发明实施例中,确定待更新JAVA程序处于关开启状态;关闭待更新JAVA程序;将待更新JAVA程序的更新文件发送至目标服务器;在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。通过本发明实施例提供的程序的更新方法,实现了对待更新JAVA程序进行自动更新的目的,达到了提高对程序进行更新的可靠性,进而解决了相关技术中使用人工手动方式进行程序更新容易出现失误,可靠性较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的程序的更新方法的流程图;

图2是根据本发明实施例的程序的更新装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于描述,下面对本发明实施例中出现的名词或术语进行说明。

安全外壳协议(Secure Shell,简称SSH),是建立在应用层基础上的安全协议,为远程登录会话和其他网络服务提供安全性的协议;是由客户端和服务端的软件组成;其工作机制大致是本地的客户端发送一个连接秦秋到远程的服务端,服务端检查申请的包和IP地址再发送秘钥给SSH的客户端,本地再将秘钥发回给服务端,自此建立连接。

计算机壳层shell,是指为使用者提供操作界面的软件,类似于DOS下的command.com和后来的cmd.exe,它接收用户命令,然后调用相应的应用程序。

进程控制符(Process Identifier,简称PID),是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID,进程中止后PID被系统回收,可能会被继续分配给新运行的程序。

实施例1

根据本发明实施例,提供了一种程序的更新方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的程序的更新方法的流程图,如图1所示,该程序的更新方法包括如下步骤:

步骤S102,确定待更新JAVA程序处于开启状态。

可选的,这里的待更新的JAVA程序为已经安装在目标服务器上,并需要进更新的程序。

步骤S104,关闭待更新JAVA程序;

步骤S106,将待更新JAVA程序的更新文件发送至目标服务器。

此处,在根据步骤S102确定待更新程序处于开启状态后,获取待更新JAVA程序的更新文件,并将该更新文件发送至目标服务器。

步骤S108,在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。

由上可知,在本发明实施例中,可以在确定待更新JAVA程序处于开启状态后,关闭待更新JAVA程序,将待更新JAVA程序的更新文件发送至目标服务器,并在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新,实现了对待更新JAVA程序进行自动更新的目的,达到了提高对程序进行更新的可靠性。

因此,通过本发明实施例提供的程序的更新方法,解决了相关技术中使用人工手动方式进行程序更新容易出现失误,可靠性较低的技术问题。

作为一种可选的实施例,在确定待更新JAVA程序处于开启状态之前,该程序的更新方法还包括:建立与目标服务器的远程连接关系。

在该实施例中,可以通过SSH远程连接到需要进行程序更新的服务器,即,目标服务器,从而建立与目标服务器之间的远程连接关系。

由于安全外壳协议SSH是建立在应用层基础上的安全协议,可以为远程登录会话以及其他网络服务提供安全性的协议,因此,通过SSH远程连接方式建立与目标服务器的远程连接关系,提高了与目标服务器之间的信息传输的安全性。

作为一种可选的实施例,在确定待更新JAVA程序处于开启状态之后,该程序的更新方法还包括:获取待更新JAVA程序的进程控制符PID;基于PID生成预定控制指令;控制目标服务器运行预定控制指令。

例如,可以通过jps-1获取待更新JAVA程序的PID,进而基于待更新JAVA程序的PID生成预定控制指令。当目标服务器运行该预定控制指令时,可以结束目标服务器上运行的待更新JAVA程序。

由于kill-9pid可向进程号为pid的进程发送sigkill,sigkill既不能被应用程序捕获,也不能被阻塞或忽略,即,动作是立即结束指定进程。即,应用程序根本无法感知sigkill信号,它在完全无准备的情况下,就被收到sigkill信号的操作系统给处理掉了,使得应用程序完全没有释放掉当前占用资源的机会,从而可以使得程序继续占用被分配的PID。

因此,在本发明实施例中,可以基于kill-9pid编写上述预定控制指令。

需要说明的是,由于计算机壳层shell,是指为使用者提供操作界面的软件,类似于DOS下的command.com和后来的cmd.exe,它接收用户命令,然后调用相应的应用程序。所以,在本发明实施例中,可以基于shell脚本来为操作者提供操作界面的软件。

作为一种可选的实施例,关闭待更新JAVA程序,包括:确定目标服务器响应于预定控制指令;对目标服务器运行预定控制指令的运行操作进行监测;在监测结果表示目标服务器成功运行预定控制指令,确定待更新JAVA程序处于关闭状态。

通过该实施例,可以精准地确定待更新JAVA程序是否处于开启状态。

作为一种可选的实施例,将待更新JAVA程序的更新文件发送至目标服务器,包括:编写基于scp命令的远程拷贝指令;通过远程拷贝指令将待更新JAVA程序的更新文件发送至目标服务器。

例如,通过scp命令将更新文件发送至目标服务器,以提高更新文件传输过程中的安全性。

作为一种可选的实施例,在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新,包括:编写基于java-jar的远程启动指令;通过远程启动指令在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。

例如,可以通过基于java-jar的命令在目标服务器上打开更新文件,从而实现对待更新JAVA程序的更新。

由上分析可知,通过本发明实施例提供的程序的更新方法,可以基于shell脚本方式实现通过SSH远程连接到需要部署的服务器,通过jps-l获取待更新JAVA程序的PID,再使用kill-9pid关闭待更新JAVA程序,并再将需要部署的新程序(即,更新文件),通过scp命令上传到目标服务器,最后通过java-jar启动程序,实现java程序的自动化更新,提高了对待更新程序进行更新的效率以及可靠性。

实施例2

根据本发明实施例的另外一个方面,还提供了一种程序的更新装置,图2是根据本发明实施例的程序的更新装置的示意图,如图2所示,该程序的更新装置包括:确定单元21、关闭单元23、发送单元25以及更新单元27。下面对本发明实施例提供的程序的更新装置进行详细说明。

确定单元21,用于确定待更新JAVA程序处于开启状态。

关闭单元23,用于关闭待更新JAVA程序。

发送单元25,用于将待更新JAVA程序的更新文件发送至目标服务器。

更新单元27,用于在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。

此处需要说明的是,上述确定单元21、关闭单元23、发送单元25以及更新单元27对应于实施例1中的步骤S102至S108,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本发明实施例中,可以通过确定单元确定待更新JAVA程序处于开启状态后,利用关闭单元关闭待更新JAVA程序,接着利用发送单元将待更新JAVA程序的更新文件发送至目标服务器,并利用更新单元在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。通过本发明实施例提供的程序的更新装置,实现了对待更新JAVA程序进行自动更新的目的,达到了提高对程序进行更新的可靠性,进而解决了相关技术中使用人工手动方式进行程序更新容易出现失误,可靠性较低的技术问题。

可选地,该程序的更新装置还包括:建立单元,用于在确定待更新JAVA程序处于开启状态之前,建立与目标服务器的远程连接关系。

可选地,该程序的更新装置还包括:获取单元,用于在确定待更新JAVA程序处于开启状态之后,获取待更新JAVA程序的进程控制符PID;生成单元,用于基于PID生成预定控制指令;控制单元,用于控制目标服务器运行预定控制指令。

可选地,关闭单元,包括:第一确定模块,用于确定目标服务器响应于预定控制指令;监测模块,用于对目标服务器运行预定控制指令的运行操作进行监测;第二确定模块,用于在监测结果表示目标服务器成功运行预定控制指令,确定待更新JAVA程序处于关闭状态。

可选地,发送单元,包括:第一编写模块,用于编写基于scp命令的远程拷贝指令;发送模块,用于通过远程拷贝指令将待更新JAVA程序的更新文件发送至目标服务器。

可选地,更新单元,包括:第二编写模块,用于编写基于java-jar的远程启动指令;更新模块,用于通过远程启动指令在目标服务器上启动更新文件,以对待更新JAVA程序进行自动更新。

实施例3

根据本发明实施例的另外一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序被处理器运行时控制计算机可读存储介质所在设备执行上述中任一项的程序的更新方法。

实施例4

根据本发明实施例的另外一个方面,还提供了一种处理器,处理器用于运行计算机程序,其中,计算机程序运行时执行上述中任一项的程序的更新方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 货币识别装置的程序设定系统、程序更新系统、程序更新方法、程序安装系统以及程序安装方法
  • 电子货架标签系统、商品价格管理装置、便携式终端装置、电子货架标签装置、商品价格管理方法、商品价格更新方法、商品价格管理程序及商品价格更新程序
技术分类

06120113098913