Python根据端口号自动关闭进程的方法
本文介绍在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根据端口号关闭进程的方法分享,希望能对各位开发者有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













