应用服务器进程的操作方法及装置与流程

文档序号:12600690阅读:212来源:国知局
应用服务器进程的操作方法及装置与流程

本发明涉及互联网领域,具体而言,涉及一种应用服务器进程的操作方法及装置。



背景技术:

目前,在针对游戏服务器进程(其为网络游戏提供登录验证、数值结算、网络同步等服务的应用)的操作过程中,通常采用的方式是使用安全外壳协议(SSH,其为一种专为远程登录会话和其他网络服务提供安全性的协议)终端软件(例如:SecureCRT),通过SSH协议登录到游戏服务器进程所在的Linux计算机上,进而利用shell对游戏服务器进程进行操作。

鉴于服务器操作的便捷性需求,伴随着游戏规模的增大与项目的发展,需要开放的服务器数量愈加增多,因此,如何能够更加快速地执行服务器操作以及对服务器进行维护已经成为亟待解决的技术问题。

在通常情况下,针对游戏服务器进程的操作可以包括但不限于:代码热更新、进程关闭、进程启动。相关技术中所提供的游戏服务器进程操作方式,通常是基于SSH终端,登录Linux计算机,在SSH终端内执行shell命令以实现对游戏服务器进程进行操作,当执行的不同操作时,均需要手动在命令行内输入对应的命令信息。例如:如果希望执行重启命令,则需要在终端手动输入命令“sh restart.sh”;如果希望执行更新命令,则需要在终端手动输入命令“sh update_server.sh”。

由此可见,该技术方案存在如下缺陷:

(1)当需要操作的游戏服务器进程较多时,会涉及到多台Linux计算机,因此,需要手动登录每个游戏服务器进程所在的Linux计算机并执行脚本命令,其操作效率较低。

(2)使用者必须拥有目标Linux计算机登录权限的SSH密钥,否则将无法进行远程登录和操作。

经过上述分析,基于SSH终端和shell命令行的游戏服务器进程操作方法,无法满足基于多个游戏服务器进程快速、便捷操作的要求,并且必须拥有Linux计算机的SSH权限才能够实施相关操作。

综上所述,相关技术中所提供的操作方法通常需要进行SSH登录,其操作过程较为繁琐,无法满足同时对多个服务器进程进行快速、便捷管理的需求。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种应用服务器进程的操作方法及装置,以至少解决相关技术中所提供的服务器操作方法通常需要进行SSH登录,其操作过程较为繁琐,无法满足同时对多个服务器进程进行快速、便捷管理的需求的技术问题。

根据本发明实施例的一个方面,提供了一种应用服务器进程的操作方法,包括:

获取待操作的应用服务器进程和待执行的触发事件;向终端发送请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本。

可选地,在获取应用服务器进程和待执行的触发事件之前,还包括:获取应用界面上设置的一个或多个功能按钮;分别为一个或多个功能按钮中的每个功能按钮配置对应的触发事件。

可选地,在向终端发送请求消息之后,还包括:接收终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果;对执行结果进行展示。

根据本发明实施例的另一方面,还提供了另一种应用服务器进程的操作方法,包括:

接收来自于终端的请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本;根据请求消息对应用服务器进程执行脚本。

可选地,根据请求消息对应用服务器进程执行脚本包括:对请求消息进行解析,从请求消息中提取标识信息和操作信息;根据标识信息确定应用服务器进程,以及根据操作信息确定脚本的存储位置和操作类型;按照存储位置和操作类型对应用服务器进程执行脚本。

可选地,在根据请求消息对应用服务器进程执行脚本之前,还包括:判断应用服务器进程是否已经被占用,其中,如果判断结果为是,则向终端返回异常提示信息,如果判断结果为否,则继续根据请求消息对应用服务器进程执行脚本。

可选地,在根据请求消息对应用服务器进程执行脚本之后,还包括:向终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果。

根据本发明实施例的又一方面,提供了一种应用服务器进程的操作装置,包括:

第一获取模块,用于获取待操作的应用服务器进程和待执行的触发事件;发送模块,用于向终端发送请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本。

可选地,上述装置还包括:第二获取模块,用于获取应用界面上设置的一个或多个功能按钮;配置模块,用于分别为一个或多个功能按钮中的每个功能按钮配置对应的触发事件。

可选地,上述装置还包括:接收模块,用于接收终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果;显示模块,用于对执行结果进行展示。

根据本发明实施例的再一方面,还提供了另一种应用服务器进程的操作装置,包括:

接收模块,用于接收来自于终端的请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本;执行模块,用于根据请求消息对应用服务器进程执行脚本。

可选地,执行模块包括:解析单元,用于对请求消息进行解析,从请求消息中提取标识信息和操作信息;确定单元,用于根据标识信息确定应用服务器进程,以及根据操作信息确定脚本的存储位置和操作类型;执行单元,用于按照存储位置和操作类型对应用服务器进程执行脚本。

可选地,上述装置还包括:判断模块,用于判断应用服务器进程是否已经被占用,其中,如果判断结果为是,则向终端返回异常提示信息,如果判断结果为否,则继续根据请求消息对应用服务器进程执行脚本。

可选地,上述装置还包括:反馈模块,用于向终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果。

在本发明实施例中,采用获取待操作的应用服务器进程和待执行的触发事件的方式,通过向运行应用服务器进程的终端发送请求消息,并通过请求消息中携带的标识信息在终端上查找应用服务器进程,以及通过请求消息中携带的操作信息指示终端对应用服务器进程执行与触发事件关联的脚本,达到了在不具备Linux计算机SSH权限的情况下,仍然可以对应用服务器进程执行相关操作的目的,从而实现了提高服务器进程操作便捷性的技术效果,进而解决了相关技术中所提供的服务器操作方法通常需要进行SSH登录,其操作过程较为繁琐,无法满足同时对多个服务器进程进行快速、便捷管理的需求的技术问题。

附图说明

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

图1是根据本发明实施例的应用服务器进程的操作方法的流程图;

图2是根据本发明优选实施的使用Python+PyQt实现的服务器进程操作工具的界面示意图;

图3是根据本发明实施例的另一种应用服务器进程的操作方法的流程图;

图4是根据本发明实施例的应用服务器进程的操作装置的结构框图;

图5是根据本发明优选实施例的应用服务器进程的操作装置的结构框图;

图6是根据本发明实施例的另一种应用服务器进程的操作装置的结构框图;

图7是根据本发明优选实施例的另一种应用服务器进程的操作装置的结构框图。

具体实施方式

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

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

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

图1是根据本发明实施例的应用服务器进程的操作方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取待操作的应用服务器进程和待执行的触发事件;

步骤S104,向终端发送请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本。

通过上述步骤,可以采用获取待操作的应用服务器进程和待执行的触发事件的方式,通过向运行应用服务器进程的终端发送请求消息,并通过请求消息中携带的标识信息在终端上查找应用服务器进程,以及通过请求消息中携带的操作信息指示终端对应用服务器进程执行与触发事件关联的脚本,达到了在不具备Linux计算机SSH权限的情况下,仍然可以对应用服务器进程执行相关操作的目的,从而实现了提高服务器进程操作便捷性的技术效果,进而解决了相关技术中所提供的服务器操作方法通常需要进行SSH登录,其操作过程较为繁琐,无法满足同时对多个服务器进程进行快速、便捷管理的需求的技术问题。

需要说明的是,在以下优选实施例中将以应用服务器进程为游戏服务器进程为例,对本发明实施例所提供的技术方案做进一步详细阐述,但其并不构成对本发明的不当限制。另外,上述对游戏服务器执行的操作仅能采用固定内容的脚本,而无法对这些脚本进行修改,因此,只能对游戏服务器执行固定的操作内容。

在优选实施过程中,操作人员所使用的终端可以通过PyQt(其为一个创建图形用户界面应用程序的工具包,是Python编程语言与Qt库的成功融合)控件的信号(包括:按钮点击、列表选择)触发向游戏服务器进程所在终端发送超文本传输协议(HTTP)请求消息,其中,根据点击的按钮与当前选取的待操作的游戏服务器进程生成HTTP请求信息并启动一个操作线程,该操作线程通过Python的urllib2库向游戏服务器进程所在终端发送HTTP请求消息,然后开始等待游戏服务器进程所在终端返回的HTTP响应消息。

执行游戏服务器进程重启操作的流程示例如下:

def restart(url,path,server_id):

#添加http请求头信息

#添加脚本执行目录

#添加目标服务器进程的编号

#发送请求消息

此外,类似的游戏服务器进程操作还可以包括但不限于:重新加载(reload),切换(switch),查询(query)。

可选地,在步骤S102,获取应用服务器进程和待执行的触发事件之前,还可以包括以下步骤:

步骤S100,获取应用界面上设置的一个或多个功能按钮;

步骤S101,分别为一个或多个功能按钮中的每个功能按钮配置对应的触发事件。

在操作人员所使用的终端上会预先为应用界面内的每个按钮分别绑定不同的指令发送事件,其可以包括但不限于:重启操作、数据更新操作、热更新操作,并添加需要操作的游戏服务器进程列表。

图2是根据本发明优选实施的使用Python+PyQt实现的服务器进程操作工具的界面示意图,如图2所示,用户只需在下拉列表里选择当前待操作的游戏服务器进程,点击服务器进程操作按钮便可以对当前待操作的服务器进程进行相应地操作。

具体地,点击“使用SVN数据热更新”按钮会更新游戏服务器进程的代码和导表数据;点击“使用本地数据热更新”按钮会更新游戏服务器进程的代码,即仅更新游戏逻辑数据,而不会更新服务器进程的导表数据中所包含的游戏数值数据;点击“重启”按钮会重新启动当前待操作的游戏服务器进程。

由此可见,上述常用的游戏服务器进程操作都只需要通过鼠标点击相应的按钮即可轻松完成。

可选地,在步骤S104,向终端发送请求消息之后,还可以包括以下执行步骤:

步骤S105,接收终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果;对执行结果进行展示。

操作人员所使用的终端可以通过先前启动的操作线程接收到游戏服务器进程所在的终端返回的响应消息。操作人员所使用的终端可以对响应消息进行解析,前述操作线程可以通过json.loads方法从HTTP响应消息的content中获取操作执行结果;然后,再弹出消息框以便将执行结果通知给用户。

根据本发明实施例,还提供了另一种应用服务器进程的操作方法的实施例,图3是根据本发明实施例的另一种应用服务器进程的操作方法的流程图,如图3所示,该方法包括如下步骤:

步骤S302,接收来自于终端的请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本;

步骤S304,根据请求消息对应用服务器进程执行脚本。

可选地,在步骤S304中,根据请求消息对应用服务器进程执行脚本可以包括以下执行步骤:

步骤S3041,对请求消息进行解析,从请求消息中提取标识信息和操作信息;

步骤S3042,根据标识信息确定应用服务器进程,以及根据操作信息确定脚本的存储位置和操作类型;

步骤S3043,按照存储位置和操作类型对应用服务器进程执行脚本。

具体地,游戏服务器进程所在终端可以使用Python的BaseHttpServer库启动一个多线程的HTTP服务器来接收操作人员所使用终端发送的HTTP请求消息。

def deal_post_data(self):

#获取脚本路径,并根据路径判断操作类型

#获取游戏服务器进程编号,编号和游戏服务器进程的对应关系可以预先在操作人员所使用的终端上进行配置

#根据脚本路径执行对应的游戏服务器进程操作并返回执行结果

游戏服务器进程所在终端在接收到操作人员所使用的终端发送的HTTP请求消息后,从HTTP的响应报文头(content)中解析出脚本路径,通过不同的脚本路径类型获取本次需要执行操作的类型,从而得到本次需要执行的操作指令列表。

可选地,在步骤S304,根据请求消息对应用服务器进程执行脚本之前,还可以包括以下执行步骤:

步骤S303,判断应用服务器进程是否已经被占用,其中,如果判断结果为是,则向终端返回异常提示信息,如果判断结果为否,则继续根据请求消息对应用服务器进程执行脚本。

当获取到本次需要进行操作的相关信息后,首先通过互斥锁判断当前服务器进程是否已经被占用,如果没有被占用,则通过popen(其为计算机系统函数,用于产生子进程)启动多个子进程,来执行游戏服务器进程操作脚本,其原因在于:一次服务器进程操作中可能涉及到多个shell脚本,每一个子进程用于执行一个shell脚本;如果当前服务器进程已被占用,则直接返回异常提示信息。

每一个cmd对应一个shell脚本,在一次操作中可能涉及到多个shell脚本,父进程(即服务端软件的主进程)从command列表里依次提取出cmd,popen生成一个子进程执行shell脚本,并且父进程等待子进程执行完后才继续执行下一个popen,以确保多个shell脚本的按序执行。

可选地,在步骤S304,根据请求消息对应用服务器进程执行脚本之后,还可以包括以下执行步骤:

步骤S305,向终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果。

游戏服务器进程所在终端在全部子进程均执行完毕,即操作游戏服务器进程的shell脚本全部执行完毕后,可以将子进程的运行结果,即游戏服务器进程操作脚本的执行结果通过json.dumps方法转换为字符串类型,再通过deal_post_data成员函数返回至操作人员所使用的终端。

综上所述,本发明实施例所提供的技术方案主要由游戏服务器进程操作指令客户端软件和游戏服务器进程操作指令执行服务端软件组成,其中,游戏服务器进程操作指令客户端软件,部署于操作人员所使用的终端上,使用PyQt制作,具备面向用户的操作界面,其主要功能在于:通过HTTP发送游戏服务器进程操作指令;游戏服务器进程操作指令执行服务端软件,部署于游戏服务器进程所在的Linux计算机上,其主要功能在于:通过HTTP接收并解析客户端软件发送的游戏服务器进程操作指令,并对相应的游戏服务器进程执行shell脚本。具体操作过程可以包括以下执行步骤:

第一步、在客户端软件代码中预先为界面内的每个按钮分别绑定不同的指令发送事件,其可以包括但不限于:重启操作、数据更新操作、热更新操作,并添加需要操作的游戏服务器列表。

第二步、在客户端软件界面上选取目标游戏服务器并点击按钮,向服务端软件发送HTTP请求消息,其中,该HTTP请求消息包括:操作信息和游戏服务器进程的路径信息。

第三步、服务端软件接收来自于客户端软件的HTTP请求消息并对该HTTP请求消息进行解析,以便从该HTTP请求消息中获取操作信息和游戏服务器进程的路径信息,从而根据操作信息和游戏服务器进程的路径信息执行对应的shell脚本,对游戏服务器进程进行操作,以及将操作结果以HTTP响应消息的形式返回给客户端软件。

第四步、客户端软件接收来自于服务端软件的HTTP响应消息并对该HTTP响应消息进行解析,然后再弹出消息框将解析结果反馈至用户。

根据本发明实施例,提供了一种应用服务器进程的操作装置的实施例,图4是根据本发明实施例的应用服务器进程的操作装置的结构框图,如图4所示,该装置可以包括:第一获取模块100,用于获取待操作的应用服务器进程和待执行的触发事件;发送模块102,用于向终端发送请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本。

可选地,图5是根据本发明优选实施例的应用服务器进程的操作装置的结构框图,如图5所示,上述装置还可以包括:第二获取模块104,用于获取应用界面上设置的一个或多个功能按钮;配置模块106,用于分别为一个或多个功能按钮中的每个功能按钮配置对应的触发事件。

可选地,如图5所示,上述装置还可以包括:接收模块108,用于接收终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果;显示模块110,用于对执行结果进行展示。

根据本发明实施例,还提供了另一种应用服务器进程的操作装置的实施例,图6是根据本发明实施例的另一种应用服务器进程的操作装置的结构框图,如图6所示,该装置可以包括:接收模块200,用于接收来自于终端的请求消息,其中,应用服务器进程运行于终端上,请求消息中携带有标识信息和操作信息,标识信息用于在终端查找应用服务器进程,操作信息用于指示终端对应用服务器进程执行与触发事件关联的脚本;执行模块202,用于根据请求消息对应用服务器进程执行脚本。

可选地,执行模块202可以包括:解析单元(图中未示出),用于对请求消息进行解析,从请求消息中提取标识信息和操作信息;确定单元(图中未示出),用于根据标识信息确定应用服务器进程,以及根据操作信息确定脚本的存储位置和操作类型;执行单元(图中未示出),用于按照存储位置和操作类型对应用服务器进程执行脚本。

可选地,图7是根据本发明优选实施例的另一种应用服务器进程的操作装置的结构框图,如图7所示,上述装置还可以包括:判断模块204,用于判断应用服务器进程是否已经被占用,其中,如果判断结果为是,则向终端返回异常提示信息,如果判断结果为否,则继续根据请求消息对应用服务器进程执行脚本。

可选地,如图7所示,上述装置还可以包括:反馈模块206,用于向终端返回的响应消息,其中,响应消息中携带有应用服务器进程关联的执行结果。

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

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

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

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

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

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1