【python中级】关于Flask服务在同一系统里如何只被运行一次
【python中级】关于Flask服务在同一系统里如何只被运行一次
- 1.背景
- 2.方案1
- 2.方案2
1.背景
python Flask实现的一个http服务,打包成应用程序exe后在windows10系统运行;
由于我会不断的更新这个http服务,我希望运行这个http服务的时候之前的http服务被停掉;
即实现 Python Flask + 单例进程控制 的方式实现 每次运行新的 HTTP 服务时自动关闭之前的实例。
注意:我希望程序(或 EXE)只有一个实例在运行,而且是当前程序运行,之前的程序停止;
你可以验证是否成功关闭旧进程的方法:
netstat -ano | findstr :5000
假如flask服务器的端口是5000,如果旧服务被成功杀掉的话,这里就不会有监听端口了。
2.方案1
实现方案一:通过端口占用自动关闭旧服务
步骤:
- 1.启动服务时检测端口是否被占用。
- 2.如果被占用,则通过操作系统找到旧进程并杀掉。
- 3.启动新的 Flask 服务。
代码示例:
# -*- coding: utf-8 -*-