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

2024-10-02 00:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道flask deployment options,但是对于我编写的一个如此简单的flask应用程序,所有这些选项对我来说似乎都太过分了。它与flask自己的内置服务器配合使用很好。在

workon kittapp
python run.py // runs the webserver at configured port, everything's fine

这是我的跑.py文件

^{pr2}$

第一个问题是,一旦我退出ssh会话,服务器就会停止,所以我试图使用一次性的cron作业、at now或{}命令将任务推送到后台。它运行良好,但第二个问题是,几个小时后python进程(被推到bg)不再运行,webapp也关闭了。在

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


Tags: therunpy服务器应用程序flask进程选项
1条回答
网友
1楼 · 发布于 2024-10-02 00:34:47

您可能正在查找Supervisor。在

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

你可以为你的Flask应用创建一个简单的配置文件,添加到Supervisor,启动它,你就完成了。方法如下:

# Install supervisor
sudo apt install supervisor -y # Or pip install supervisor 

# Start supervisor service
sudo service supervisor start

# Create your config file
# I'll add a sample kittapp.conf later on...
sudo vim /etc/supervisor/conf.d/kittapp.conf

# Add and start your job
sudo supervisorctl add kittapp
sudo supervisorctl start kittapp

别紧张,对吧?但是在使用virtualenvs时有一个小问题,你就是这样。请注意,workon是一个shell函数,而不是PATH中的可执行文件。在运行作业之前,主管不会为您的~/.bash*~/.zsh*文件提供源。它对他们一无所知。因此,workon将不可用。相反,我们需要正确设置python路径以指向venv的bin/目录。可以使用environment指令来完成。在

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

^{pr2}$

好吧,就这些了。在

你可能想看看这个关于主管的Laracasts课程:
https://laracasts.com/lessons/supervise-this

相关问题 更多 >

    热门问题