我使用Visual Studio模板中的Flask创建了一个默认的基本Web服务器。 当我从命令提示符启动它时,它会显示"按Ctrl + C退出"。当我按Ctrl + C时,没有任何反应,服务器继续运行。
问题:有没有办法让Flask在广告时按Ctrl + C停止?
这是服务器启动的代码:
from os import environ
from myapp import app
if __name__ == '__main__':
HOST = environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.run(HOST, PORT)
答案 0 :(得分:1)
虽然这是一个奇怪的问题,你可以通过在linux命令行中运行此命令来杀死烧瓶:
sudo kill servicename
用服务PID替换servicename
你可以通过运行这个命令来获得它:
sudo ps -A | grep "python(x)"
其中x是python版本
答案 1 :(得分:0)
您应该在新的命令提示符窗口中使用TASKKILL
答案 2 :(得分:0)
要停止在Windows上运行的Flask服务器,请执行以下操作:
taskkill /f /im python.exe
您还可以选择要杀死的特定Python进程:
> tasklist /fi "imagename eq python.exe"
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
python.exe 1080 Console 8 72,456 K
python.exe 15860 Console 8 73,344 K
> taskkill /F /pid 15860
SUCCESS: The process with PID 15860 has been terminated.
from flask import request
def shutdown_server():
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('Not running with the Werkzeug Server')
func()
@app.route('/shutdown', methods=['POST'])
def shutdown():
shutdown_server()
return 'Server shutting down...'