我们知道,做web开发,在调试时需要反复启动整个工程,那么上一个工程占用的端口,在下一次工程启动时就不能用了,因为占用的端口没有释放,但是手动关闭方法是:
lsof -i:12345
得到pid后再kill -9 pid
十分麻烦,所以能否在启动python的web工程时顺便把上一次占用的端口给关闭了呢?
当然是有的,下面以flask为例(注意,复制下面的代码时,不要直接鼠标复制,而是使用左上角的view plain来复制,因为csdn博客会把'''+str(port)+'''的右侧显示成5个单引号,以及会把'''kill -9前面显示成五个单引号):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#-*- 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根据端口号关闭进程的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/appleyuchi/article/details/79370714