我有一个托管在 amazon ec2 linux 实例上的 django 项目。 为了在部分关闭时也运行我的应用程序,我使用 gunicorn,但我遇到了一些错误和性能下降。 当我运行命令时:
python manage.py runserver
在终端上一切正常,但当部分关闭时,应用程序无法正常工作。
在关闭 session 的情况下,如何在后台永远运行命令“python manage.py runserver”(直到我将其杀死)?
我知道有 uWSGI 但我更喜欢直接使用 django 原生命令。
提前致谢
最佳答案
这里发生的是当您的 session 关闭时脚本被 SIGHUP
信号中断。为了克服这个问题,有一个名为 nohup
的工具,它不会将 SIGHUP
传递给它执行的程序/脚本。按如下方式使用它:
nohup python manage.py runserver &
(请注意最后的 &
,它是必需的,以便 manage.py
在后台而不是在前台运行)。
默认情况下 nohup
重定向文件 nohup.out
中的输出,因此您可以使用 tail -f nohup.out
来观察Django 应用程序的输出/日志。
但是请注意,manage.py runserver
不应在生产中使用。对于生产,你真的应该使用合适的 WSGI 服务器,例如 uWSGI 或 Gunicorn。
关于python - Django 使用 'python manage.py' runserver 代替 Gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289325/