如何设置flask服务器启动?

如何设置flask服务器启动?

我有一个基于 flask+tornado 组合的 Web 服务器。它在虚拟环境中运行(使用 python virtualenv 设置)。

我希望服务器在普通用户启动时自动启动。我为实现此目标做了以下工作:

1)我编写了一个启动脚本,内容如下:

cd /home/ubuntu/myserver
# enter virtualenv
source venv/bin/activate
# launch
python app.py > serverlog.log 2&>1 &

2)我已经设置了一个crontab,如下crontab -e所示:

SHELL=/bin/bash
@reboot /home/ubuntu/start_service.sh

当我从命令行执行启动脚本时,一切都正确启动。但重新启动后,serverlog.log我看到一个堆栈跟踪,提示绑定到端口 5000 失败。我该怎么做才能修复它?

答案1

Crontab 不够智能,无法保持服务器正常运行。当服务器宕机时,它必须等待 crontab 再次运行;您的客户端会从故障服务器收到 404 错误。

我建议你使用类似的东西导师。你可以使用 easy_install 安装它,例如

   easy_install supervisor

你需要处理 Supervisord 和 Supervisorctl。第一个是守护进程管理器,它将运行并确保你的

python app.py > serverlog.log 2&>1 &

无论如何都要继续运行。您可以通过在supervisord.conf上创建一个所谓的程序来实现这一点,例如

[program:flasktornado]
command=python app.py > serverlog.log 2&>1 &

Supervisorctl 是你如何在supervisord配置文件上控制[启动|停止|重新启动]你刚刚创建的程序。可能会对你有帮助。

相关内容