您的位置首页  散文小品

80端口被占用(tomcat8080端口被占用)干货满满

需求:启动tomcat的时候,有其他程序的端口占用了8080端口,导致启动失败,提示端口被占用,但是windows查询端口占用程序很麻烦。所以利

80端口被占用(tomcat8080端口被占用)干货满满

 

需求:启动tomcat的时候,有其他程序的端口占用了8080端口,导致启动失败,提示端口被占用,但是windows查询端口占用程序很麻烦所以利用python开发了小工具技术:使用了pyside6框架开发UI界面。

利用python调用cmd命令查找端口占用的程序pid调用cmd命令杀掉程序pid具体代码如下:# -*- coding: utf-8 -*# window杀掉占用的端口程序,例如8080端口被不知名的程序占用,导致tomcat启动报错端口被占用.使用此工具,可以直接杀死该程序,从而顺利启动tomcat或者其他需要使用8080的软件。

import os import sys from PyQt6 import QtWidgets, QtCore # 铺界面classMyWidget(QtWidgets.QWidget):def

__init__(self): super().__init__() self.setWindowTitle(kill进程) self.button = QtWidgets.QPushButton(

"杀死进程") self.label = QtWidgets.QLabel("请输入端口号:") self.text = QtWidgets.QLineEdit("8080"

) self.layout = QtWidgets.QVBoxLayout(self) self.layout.addWidget(self.label)

self.layout.addWidget(self.text) self.layout.addWidget(self.button) self.button.clicked.connect(

self.magic) defmagic(self): port = self.text.text() if port==: QtWidgets.QMessageBox.warning(

self, "提示框", "端口号不能为空") returnself.findPort(port=port) QtWidgets.QMessageBox.warning(

self, "提示框", f成功杀死占用{port}端口的进程) # 杀死端口占用进程的主要方法deffindPort(self,port=8080): # 在cmd中使用命令 netstat -aon|findstr 8080 可以显示出8080的进程id,然后可以使用 taskkill -pid 进程号杀掉进程

with os.popen(fnetstat -aon|findstr "{port}") as res: res = res.read().split(\n)

# result = []for line inres: print(line) temp = [i for i in line.split() if i != ]

if len(temp) > 4: # result.append({pid: temp[4], address: temp[1], state: temp[3]}) r = os.popen(f

"taskkill -pid {temp[4]} -f") print(f成功杀死占用{port}端口的进程) if __name__ == "__main__": app = QtWidgets.QApplication([]) widget = MyWidget() widget.resize(

200, 100) widget.show() sys.exit(app.exec()) 代码完成之后,利用pyinstaller打包成 exe文件,可以直接运行pyinstaller。

-F .\KillPortTask.py--noconsole不得不说,python虽然很方便,但是打包的程序太大了。因为包含了qt的组件。

足足有23M多。等过几天用c++开发一下,应该只有几KB。有需要的吗?留下邮箱发给你。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186