django uwsgi pid文件得到自动删除

czq61nw1  于 2023-03-20  发布在  Go
关注(0)|答案(1)|浏览(196)

我用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被删除的原因可能是什么?我将如何防止这种情况?

hc8w905p

hc8w905p1#

我有同样的问题与我们的一个服务器。我们有2个服务器与完全相同的操作系统设置和问题只出现在其中一个服务器。
我们的配置是uwsgi,Nginx和debian-11。
uwsgi.ini在服务器上没有问题:

[uwsgi]
chmod-socket = 666
daemonize = /var/log/path/server_a.log
die-on-term = true
disable-logging = True
enable-threads = true
master = true
module = myapp.wsgi:application
pidfile = /tmp/myapp.uwsgi.pid
processes = 4
python-path = /var/www/path/myapp
socket = /var/www/path/myapp/uwsgi.sock
stats-http = true
stats-server = localhost:8084
strict = true
vacuum = true

出现问题的服务器上的uwsgi.ini文件(仅进程数量发生变化):

[uwsgi]
chmod-socket = 666
daemonize = /var/log/path/server_a.log
die-on-term = true
disable-logging = True
enable-threads = true
master = true
module = myapp.wsgi:application
pidfile = /tmp/myapp.uwsgi.pid
processes = 16
python-path = /var/www/path/myapp
socket = /var/www/path/myapp/uwsgi.sock
stats-http = true
stats-server = localhost:8084
strict = true
vacuum = true

相关问题