Django使用'python manage.py'runserver代替Gunicorn

时间:2018-09-12 07:06:08

标签: python django nginx gunicorn django-manage.py

我在amazon ec2 linux实例上托管了一个django项目。 为了在部分关闭时也运行我的应用程序,我使用了gunicorn,但是我遇到了一些错误和性能下降。 当我运行命令时:

  

python manage.py runserver

从终端运行都很好,但是当该部分关闭时,app无法正常工作。

在关闭会话的情况下,如何在后台永久运行命令“ python manage.py runserver”(直到我将其杀死)?

我知道有uWSGI,但我更喜欢直接使用django本机命令。

预先感谢

3 个答案:

答案 0 :(得分:3)

这里发生的是,当您的会话关闭时,脚本被map1.html信号中断。为了解决此问题,有一个名为SIGHUP的工具不会将nohup传递给它执行的程序/脚本。如下使用它:

SIGHUP

(最后请注意nohup python manage.py runserver & ,以便&在后​​台而不是在前台运行)。

默认情况下,manage.py重定向文件nohup中的输出,因此您可以使用nohup.out来查看Django应用的输出/日志。

不过,请注意,tail -f nohup.out不应在生产中使用。对于生产,您确实应该使用适当的WSGI服务器,例如uWSGI或Gunicorn。

答案 1 :(得分:1)

如果即使关闭 SSH mosh 后仍要在后台运行脚本,也可以安装并使用 tmux 。 strong>联系

$ sudo apt-get install tmux

然后使用命令$ tmux运行它,只需执行命令即可打开一个新的外壳程序

$ python manage.py runserver 0.0.0.0:8000

0.0.0.0:8000 这里将自动获取您允许的主机。现在,您可以使用 CTRL + B 分离tmux会话以在后台运行它,然后按 D

现在您可以退出终端,但是您的命令继续在tmux中运行。只需从here

了解使用tmux的基本命令

答案 2 :(得分:0)

为此,您可以使用屏幕,只需启动一个新屏幕并运行 python manage.py runserver