【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 -*-