一种进程端口管理装置及方法
技术领域
本发明涉及计算机软件技术领域,具体涉及一种进程端口管理装置及方法。
背景技术
随着网络应用的增加,服务器的应用变得越来越广泛,服务器提供的业务也越来越多,因此在服务器上运行的程序也相应的增加了。一般情况下,每个服务进程都占用系统一个或者数个端口,除了一部分well-know端口外,大多数端口的使用一般都没有规律,都是各个程序自定义的。
一般而言,一台服务器的某个端口都是用在某个特定的服务上的,但是经常会有一些其它的程序也占用该端口,从而引起端口冲突。而占用该端口的进程通常不是用户所希望的占用该端口的进程。
在这种情况下,用户可以通过重启PC机,或者通过PC机的任务管理器手动强制终止特定名称的进程,以解决非法进程占用服务端口号的问题。如果采用重启PC机的方式,所需要的时间比较长,用户体验比较差。
而如果采用手动的方式,由于占用某个服务端口的非法程序进程通常是多国,多个进程之间没有联系,且普通用户的获知度有限,很可能无法获取PC机可能占用某个进程端口的所有进程的名称,因此,通过手动方式来结束进程只能清理占用服务端口的部分进程,而不能全部清理占用进程端口的程序进程,从而导致进程端口不能正常使用。
由以上分析可知,目前针对通过重启PC方式或者手动结束进程的方式不能有效解决进程端口占用问题。
发明内容
本发明实施例在于提供一种管理进程端口的装置及方法,实现用户通过对进程的开启与关闭管理,达到保护服务进程的正常启动。
为了实现上述目的,本发明提供了一种进程端口管理装置,该装置包括:
信息获取模块,用于获取用户输入的预定端口的端口信息和预定进程的进程信息,并生成所述预定端口和所述预定进程的对应关系信息;
进程检测模块,用于检测并获取进程的进程信息;
存储模块,连接于所述信息获取模块,用于将获取的所述预定端口的端口信息、所述预定进程的进程信息以及所述预定端口和所述预定进程的对应关系信息进行存储;
处理模块,分别连接于所述进程检测模块和所述存储模块,用于将所述进程检测模块获取的所述进程的进程信息与所述存储模块保存的所述预定进程的进程信息进行比对,并根据比对结果发送相应的控制指令;
端口管理模块,连接于所述处理模块,用于接收所述处理模块发送的所述控制指令,执行与所述控制指令对应的操作。
进一步地,所述进程包括:占用所述预定端口的进程和新开启进程。
进一步地,所述处理模块包括:
匹配单元,用于将所述进程检测模块获取的所述进程信息与所述存储模块存储的所述预定进程的进程信息进行比对,并将对比结果发送至指令单元;
指令单元,用于根据接收的所述比对结果生成控制指令,并发送至所述端口管理模块。
进一步地,所述控制指令包括:释放指令和保护指令。
为了实现上述目的,本发明还提供了一种进程端口管理方法,该方法包括:
S1、获取并保存预定端口的端口信息和预定进程的进程信息;
S2、检测并获取占用所述预定端口的进程的进程信息;
S3、将获取的所述进程的进程信息与所述预定进程的进程信息进行比对,若匹配失败,则执行S4,若匹配成功,则执行S8;
S4、关闭占用所述预定端口的进程并保护预定端口;
S5、检测并获取新开启的新进程的进程信息;
S6、将获取的所述新进程的进程信息与所述预定进程的进程信息进行比对,若匹配成功,则执行S7,否则重复执行S5;
S7、释放所述预定端口给所述新进程;
S8、监测并获取占用所述预定端口的进程的进程状态;
S9、判断所述新进程的进程状态是否关闭,若是,则执行S10,否则执行S8;
S10、保护所述预定端口并执行S5。
进一步地,所述获取并保存预定端口的端口信息和预定进程的进程信息,包括:
S11、获取用户输入的所述预定端口的端口信息和所述预定进程的进程信息;
S12、生成所述预定端口和所述预定进程的对应关系信息;
S13、保存所述预定端口的端口信息、所述预定进程的进程信息、以及所述预定端口和预定进程的对应关系信息。
由于采用上述技术方案,本发明提供的一种进程端口管理装置及方法,通过对非法占用预定端口的进程进行强制关闭,对需要占用预定端口的进程的进程信息进行检测比对,实现对特定端口的保护,从而实现服务程序的正常启动,稳定运行。
附图说明
此处所说明的附图用来提供对本发明的进一步解释,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例一种进程端口管理装置的结构示意图;
图2是本发明实施例一种进程端口管理方法的流程示意图;
图3是本发明实施例信息获取保存流程示意图。
具体实施方式
为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方 式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,为本发明实施例一种进程端口管理装置,所述管理装置包括:
信息获取模块,用于获取用户输入的预定端口8080和预定进程JBoss,生成预定端口8080和预定进程JBoss的对应关系信息;
存储模块,连接于所述信息获取模块,用于将获取的预定端口8080、预定进程JBoss以及预定端口8080和预定进程JBoss的对应关系信息进行存储;
进程检测模块,用于检测并获取新开启进程的进程信息或者检测并获取已经占用端口8080的进程的进程信息;
处理模块,分别连接于进程检测模块和存储模块,用于将进程检测模块获取的进程的进程信息与存储模块保存的所述预定进程JBoss进行比对,并根据比对结果发送相应的控制指令;
端口管理模块,连接于所述处理模块,用于接收所述处理模块发送的所述控制指令,执行与所述控制指令对应的操作。
用户可以输入一个预定端口和对应的预定进程信息,如预定端口8080,预定进程JBoss;也可以输入一个预定端口和多个对应的预定进程信息,如预定端口8080,预定进程JBoss、Apache、tomcat;也可以输入多组预定端口与对应的预定进程信息,如预定端口8080和预定进程JBoss、预定端口22和预定进程ssh、预定端口21和预定进程FTP等,存储在存储模块,当进程检测模块检测到占用预定端口的进程是,与存储模块中存储的端口信息及对应的进程信息进行比对,发出控制指令,由端口管理模块进行进程的管理。
结合附图1,2,3,对其具体实施步骤进行说明如下:
S1、获取并保存预定端口的端口信息和预定进程的进程信息;
S2、检测并获取占用所述预定端口的进程的进程信息;
S3、将获取的所述进程的进程信息与所述预定进程的进程信息进行比对,若匹配失败,则执行S4,若匹配成功,则执行S8;
S4、关闭占用所述预定端口的进程并保护预定端口;
S5、检测并获取新开启的新进程的进程信息;
S6、将获取的所述新进程的进程信息与所述预定进程的进程信息进行比对,若匹配成功,则执行S7,否则重复执行S5;
S7、释放所述预定端口给所述新进程;
S8、监测并获取占用所述预定端口的进程的进程状态;
S9、判断所述新进程的进程状态是否关闭,若是,则执行S10,否则执行S8;
S10、保护所述预定端口并执行S5。
具体的S1的具体实施步骤如下:
S11、获取用户输入的所述预定端口的端口信息和所述预定进程的进程信息;
S12、生成所述预定端口和所述预定进程的对应关系信息;
S13、保存所述预定端口的端口信息、所述预定进程的进程信息、以及所述预定端口和预定进程的对应关系信息。
一种示例的实际操作场景下,用户开启进程端口管理装置,输入一个预先要进行保护的端口信息8080和对应的进程信息JBoss,生成对应关系信息;或者输入多个预先要进行保护的端口信息,如端口8080和进程JBoss、端口22和进程ssh、端口21和进程FTP,存储在存储模块里。
另一个示例的实际操作场景下,当用户输入完需要保护的端口之后,开始检测进程信息,当检测到占用端口8080的进程并非对应的进程JBoss时,则进程端口管理装置强制结束占用端口的进程,或者当检测到进程是该端口对应的进程时,则检测该进程状态,当该进程结束,则对端口进行保护,防止其他非指定进程占用该端口。
本发明实施例通过上述进程端口管理装置及方法,通过预先设定需要保护的端口,再对进程进行检测,以判断该端口是否需要保护,不需要用户自己在服务器的任务管理器里面自行查找占用该端口的进程,或者重启服务器实现该端口的释放工作,节省了工作时间的同时,还提高了解决端口保护问题的高效性。
以上仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。