1. ホーム
  2. python

[解決済み] ctrl-cを使わずにflaskアプリケーションを停止する方法

2022-02-19 18:02:18

質問

flask-scriptでflaskのアプリケーションを停止させるコマンドを実装したいのですが、どうすればよいでしょうか? しばらく解決策を探しました。なぜなら、フレームワークは app.stop() APIは、私はこれをコーディングする方法について興味があります。私はUbuntu 12.10とPython 2.7.3で作業しています。

どのように解決するのですか?

デスクトップでサーバーを動かしているだけなら、サーバーを停止させるためのエンドポイントを公開することができます(詳しくは 簡易サーバーのシャットダウン ):

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.get('/shutdown')
def shutdown():
    shutdown_server()
    return 'Server shutting down...'
    

ここでは、より抑制の効いた別のアプローチを紹介します。

from multiprocessing import Process

server = Process(target=app.run)
server.start()
# ...
server.terminate()
server.join()

これが役に立ったら教えてください。