bottle解决端口被占用的急速kill方法

it2024-07-05  45

有时候程序被强制关闭重启的时候会显示端口被占用,这是你一定很恼火,为了避免生气而引起的呼吸困难和敲命令手指骨折,我完成了以下代码。

import os port = input("请输入端口号:") data = os.popen(f"netstat -ano| findstr 127.0.0.1:{port}").read() process = data.split("\n")[0].split("LISTENING")[1].replace(" ", "") result = os.popen(f"taskkill /f -pid {process}").read() print(result) time.sleep(20)

#!/usr/bin/python # -*- coding: UTF-8 -*- from bottle import route, static_file, run, TEMPLATE_PATH import logging import os import sys BASE_DIR = os.path.dirname(os.path.abspath(__file__)) TEMPLATE_PATH.append('/'.join((BASE_DIR, 'templates'))) @route('<filename:re:.*\.css|.*\.js|.*\.png|.*\.jpg|.*\.jpeg|.*\.gif|.*\.otf|.*\.eot|.*\.woff|.*\.mp3|.*\.map|.*\.mp4>') def server_static(filename): """定义static下所有的静态资源路径""" return static_file(filename, root='static') import apps log_path = ('/'.join((BASE_DIR, 'log'))) logging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S', filename="%s/error_log" % log_path, filemode='a') HOST = '0.0.0.0' PORT = sys.argv[1] if len(sys.argv) > 1 else '8080' data = os.popen(f"netstat -ano| findstr {HOST}:{PORT}").read() try: process = data.split("\n")[0].split("LISTENING")[1].replace(" ", "") result = os.popen(f"taskkill /f -pid {process}").read() print(result) except:pass run(server='tornado', host=HOST, port=PORT, reloader=True)
最新回复(0)