代码之家  ›  专栏  ›  技术社区  ›  AleMal

Django使用“python管理”。py’runserver代替Gunicorn

  •  0
  • AleMal  · 技术社区  · 7 年前

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

    python管理。py运行服务器

    从终端所有的工作都很好,但当部分关闭时,应用程序不工作。

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

    我知道有uWSGI,但如果可能的话,我更喜欢直接使用django原生命令。

    提前谢谢

    3 回复  |  直到 7 年前
        1
  •  4
  •   Mikhail Burshteyn    7 年前

    这里发生的是脚本被 SIGHUP 会话结束时发出信号。为了克服这个问题,有一个叫做 nohup 但这并不能通过考试 叹气 具体到它执行的程序/脚本。使用方法如下:

    nohup python manage.py runserver &
    

    (注意 & 最后,我们需要这样做 manage.py 在后台运行,而不是在前台运行)。

    默认情况下 诺胡普 重定向文件中的输出 nohup.out ,所以你可以使用 tail -f nohup.out 观看Django应用程序的输出/日志。

    然而,请注意 manage.py runserver 不应该用于生产 .对于生产,您确实应该使用适当的WSGI服务器,如uWSGI或Gunicorn。

        2
  •  2
  •   Jagjeet Singh    7 年前

    您可以安装并使用 tmux 如果你想在后台运行脚本,即使在关闭后 莫斯 连接

    $ sudo apt-get install tmux
    

    然后使用命令运行它 $ tmux 只要执行您的命令,就会打开一个新的shell

    $ python manage.py runserver 0.0.0.0:8000

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

    现在可以退出终端,但命令仍在tmux中运行。只需学习使用tmux的基本命令 here

        3
  •  0
  •   gagan trivedi    7 年前

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