如何使用uwsgi重启django

how to use uwsgi restart django

我的项目中有一个wsgi.ini文件,当我更改django代码时,我使用uwsgi wsgi.ini到运行我的project.But,我想重新启动project 而不是杀死 uwsgi 然后重新加载它。 uwsgi官方文档提供了以下方法: # using kill to send the signal kill -HUP `cat /tmp/project-master.pid` # or the convenience option --reload uwsgi --reload /tmp/project-master.pid # or if uwsgi was started with touch-reload=/tmp/somefile touch /tmp/somefile 但是我的系统(centOS)的 /tmp 目录中没有 project-master.pid 文件。

我的问题:

  1. 如何使用 uwsgi 重启 django 而不是杀死它然后启动它?
  2. 如果使用uwsgi官方文档提供的方法,如何创建一个.pid文件,这个文件应该包含哪些内容?

您不需要使用 uWSGI 服务器来满足您的本地开发需求。 Apache/uWSGI 用于生产,并且在每次代码更改时隐式重新启动它们通常是不可取的。事实上,即使在代码更改后生产服务器也不会重新启动,这通常起到了安全网的作用,这样您就不会在没有完成部署的情况下最终重新启动服务器。

只需使用 django 自身提供的内置服务器。

python manage.py runserver 8000

我找到答案了。 project-master.pid设置在wsgi.ini文件中,你应该先设置pidfile=/tmp/project-master.pid。然后使用uwsgi启动服务器:uwsgi wsgi.ini。启动后,在/tmp目录下可以看到一个project-master.pid文件。当你想重新加载uwsgi服务器时,你可以使用这样的命令来重启服务器:uwsgi --reload /tmp/project-master.pid.

我认为我找到了更简单的答案,你可以杀死你的 uwsgi 进程然后重新生成它:

killall uwsgi

然后再次 运行 你的 uwsgi 命令。