使用python根據埠號關閉程序
阿新 • • 發佈:2019-02-17
我們知道,做web開發,在除錯時需要反覆啟動整個工程,那麼上一個工程佔用的埠,在下一次工程啟動時就不能用了,因為佔用的埠沒有釋放,但是手動關閉方法是:
lsof -i:12345
得到pid後再kill -9 pid
十分麻煩,所以能否在啟動python的web工程時順便把上一次佔用的埠給關閉了呢?
當然是有的,下面以flask為例(注意,複製下面的程式碼時,不要直接滑鼠複製,而是使用左上角的view plain來複制,因為csdn部落格會把'''+str(port)+'''的右側顯示成5個單引號,以及會把'''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/