我用django和uwsgi安装了一个nginx服务器。有多个django应用程序同时运行在不同的virualenvs上,单独的uwsgi进程在nginx监听的单独端口上。安装工作正常。
我使用pidfile标志来停止uwsgi进程。当我启动任何uwsgi服务器时,pidfile被创建,我可以使用下面提供的脚本立即重新启动,而不会出错。
过了一段时间,当我回来更新服务器时,pidfile消失了,uwsgi进程仍在运行。这使得这种方法毫无用处。
项目_A_uwsgi.ini:
[uwsgi]
master = true
socket = /tmp/stripe_test_uwsgi.sock
chmod-socket = 666
chdir = /home/ubuntu/TestProjects/ProjectA
wsgi-file = /home/ubuntu/TestProjects/ProjectA/ProjectA/wsgi.py
virtualenv = /home/ubuntu/TestProjects/ProjectA/venv
vacuum = true
enable-threads = true
daemonize= /home/ubuntu/TestProjects/ProjectA/uwsgi.log
项目_A_服务器_重新启动.sh:
#!/bin/sh
DEPLOYMENT_PATH='/home/ubuntu/TestProjects/ProjectA'
. ${DEPLOYMENT_PATH}/venv/bin/activate
uwsgi --stop /home/ubuntu/TestProjects/project_A_uwsgi.pid
uwsgi --ini /home/ubuntu/TestProjects/project_A_uwsgi.ini --pidfile /home/ubuntu/TestProjects/project_A_uwsgi.pid
sudo service nginx restart
pidfile被删除的原因可能是什么?我将如何防止这种情况?
1条答案
按热度按时间hc8w905p1#
我有同样的问题与我们的一个服务器。我们有2个服务器与完全相同的操作系统设置和问题只出现在其中一个服务器。
我们的配置是uwsgi,Nginx和debian-11。
uwsgi.ini在服务器上没有问题:
出现问题的服务器上的uwsgi.ini文件(仅进程数量发生变化):