Python 在ubuntu上部署Flask应用程序的最快方法

Python 在ubuntu上部署Flask应用程序的最快方法,python,ubuntu,deployment,flask,Python,Ubuntu,Deployment,Flask,我知道,但是对于我写的这么一个简单的烧瓶应用程序,所有这些选项对我来说似乎都是多余的。它可以与flask自己的内置服务器配合使用 workon kittapp python run.py // runs the webserver at configured port, everything's fine 这是我的run.py文件 from kittapp import app if __name__ == '__main__': app.run(host=app.config['H

我知道,但是对于我写的这么一个简单的烧瓶应用程序,所有这些选项对我来说似乎都是多余的。它可以与flask自己的内置服务器配合使用

workon kittapp
python run.py // runs the webserver at configured port, everything's fine
这是我的run.py文件

from kittapp import app

if __name__ == '__main__':
    app.run(host=app.config['HOST'], port=app.config['PORT'], debug=app.config['DEBUG'])
第一个问题是,服务器在我退出ssh会话时立即停止,因此我尝试使用一次性
cron
jobs、
at now
nohup
命令将任务推送到后台。它工作正常,但第二个问题是,几小时后python进程(被推到bg)不再运行,webapp也停止运行

我知道我最终需要为此编写一个类似守护进程的启动脚本。只是想看看是否有其他简单而可靠的解决方案可以在ubuntu机器上部署flask应用程序

您可能正在寻找

Supervisor是用于类Unix系统的过程控制工具。它提供了一个易于使用的界面,可以使用它来构建和管理类似守护进程的受监控进程

您可以为您的Flask应用程序创建一个简单的配置文件,将其添加到Supervisor,然后启动它,就完成了。以下是方法:

#安装监控程序
sudo apt安装主管-y#或pip安装主管
#启动主管服务
sudo服务主管启动
#创建配置文件
#稍后我将添加一个示例kittapp.conf。。。
sudo vim/etc/supervisor/conf.d/kittapp.conf
#添加并开始您的工作
sudo supervisorctl添加应用程序
sudo supervisorctl启动应用程序
简单,对吗?但是当你利用它的时候,会有一点小麻烦。请注意,
workon
是一个shell函数,而不是PATH中的可执行文件。在运行作业之前,主管不会获取
~/.bash*
~/.zsh*
文件的源代码。它对他们一无所知。因此,
workon
将不可用。相反,我们需要正确设置python路径,以指向我们的venv的
bin/
目录。可以使用
环境
指令来完成

下面是一个最小的管理器配置文件:

[程序:kittapp]
environment=PATH=“/home/user/virtualenvs/kittapp/bin”#将其指向您的虚拟虚拟车辆的bin/目录
command=python run.py#这里是主管启动服务器需要运行的实际命令
directory=/var/www/kittapp#指示主管在运行命令之前将cd放入此目录
stdout_logfile=/var/www/kittapp/logs/supervisor.log#将日志写入此文件
redirect_stderr=true#将错误重定向到主管输出,这样您的错误就会出现在日志文件中
好了,就这些了

您可能想看一下关于主管的Laracasts课程:

检查日志为什么服务器宕机,最好用supervisor或类似的东西包装。我在哪里可以检查flask应用程序的日志?nohup.out或在运行nohupthanks获取答案时应该定义的内容。我会检查的。和主管一起启动并运行。谢谢你的视频链接。让我们看看它是否继续运行。我同意。为了澄清,我没有建议OP运行Flask的开发服务器。问题本身是关于Flask的开发服务器以及如何可靠地运行它。