【问题标题】:How to stop flask in bash如何在bash中停止烧瓶
【发布时间】:2022-02-03 18:40:56
【问题描述】:

我编写了一个 bash 脚本来自动运行我的烧瓶应用程序:

#!/bin/bash                                                                                                           

python3 -m venv venv
. venv/bin/activate

export FLASK_APP=my_app
export FLASK_ENV=development
flask run

我想将其更改为flask run &,以便我可以关闭选项卡并使其仍在运行,但如果我以这种方式完成,我不知道如何停止应用程序。如果我在新标签页和新环境中,我需要做什么来停止应用程序?

【问题讨论】:

  • 尝试这样的方法来查看 PID:ps aux | grep flask 然后你可以杀死那个 PID。
  • 使用:Gunicorn、uWSGI、Gevent 或 Twisted Web

标签: bash


【解决方案1】:

我假设您使用的是 Linux / OS X 等。

在记录 bash 的 PID 之后,在 bash 脚本中“执行”flask 任务的一种方法,例如:

#!/bin/bash                                                                                                           

python3 -m venv venv
. venv/bin/activate

export FLASK_APP=my_app
export FLASK_ENV=development
echo $$ > $HOME/.my_app.pid

exec flask run

然后你可以查看$HOME/.my_app.pid的内容来知道要杀死哪个pid

exec 使 bash 只需执行烧瓶运行命令替换它自己的 pid(bash 消失)

更有趣的方法是使用daemonize ...这里有详细回答:

How do I daemonize an arbitrary script in unix?

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    要停止进程,必须将 pid 保存在某个地方,然后将其终止。 您可以像这样保留 pid:

    ./your-script.sh &
    echo $! > save_pid.txt
    

    那么如果你想杀死进程:

    kill $(cat save_pid.txt)
    rm save_pid.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 2020-02-16
      • 1970-01-01
      • 2013-03-11
      • 2020-02-01
      相关资源
      最近更新 更多