Python根据端口号自动关闭进程的方法

Felix
Felix
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍在Python Flask开发调试过程中,如何自动关闭占用端口的旧进程。通过编写killport函数,利用netstat和awk命令获取进程ID并执行kill操作,从而避免手动输入lsof和kill命令的繁琐步骤,提升开发效率。

在进行Web开发调试时,经常需要反复重启整个工程。如果上一个工程占用的端口没有及时释放,下一次启动时就会因为端口被占用而失败。传统的解决方式是手动执行命令来查找并关闭进程,具体步骤如下:

首先使用命令 lsof -i:12345 查找占用指定端口的进程。

获取到进程ID(pid)后,再执行 kill -9 pid 强制关闭该进程。

这种手动操作非常繁琐,因此我们探讨是否可以在启动Python Web工程时,自动关闭之前占用的端口。

答案是肯定的。以下以Flask框架为例进行说明(注意:复制代码时建议使用“view plain”功能,因为直接鼠标复制可能导致代码中的字符串拼接部分如''' + str(port) + '''或kill -9前的单引号显示异常,变成五个单引号)。

#-*- encoding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
from flask import Flask 
 
#生成该类的一个实例 
app = Flask(__name__) 
 
#调用app的路由方法 
@app.route('/') 
def hello_world(): 
 return '<h1> Hello World!</h1>' 
def killport(port):
	command='''kill -9 $(netstat -nlp | grep :'''+str(port)+''' | awk '{print $7}' | awk -F"/" '{ print $1 }')'''
	os.system(command) 
#开始执行 
if __name__ == '__main__': 
 #打开调试窗口 
 app.debug = True; 
 #run可以指定host参数,指定ip,0.0.0.0表示全网段 
 #app.run() 
 port=12345
 killport(port)
 app.run(host='0.0.0.0',port=port); 
 
#测试方式:curl -i 127.0.0.1:12345/

以上就是利用Python根据端口号关闭进程的方法分享,希望能对各位开发者有所帮助,也欢迎大家继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表