У меня есть настройка сервера nginx с django и uwsgi.
Существует несколько приложений django, запущенных одновременно на разных virualenvs, отдельные процессы uwsgi на отдельных портах, которые слушает nginx.
Настройка работает хорошо.
Я использую флаг pidfile, чтобы остановить процессы uwsgi. Когда я запускаю любой сервер uwsgi, создается pidfile, и я могу сразу же без ошибок перезапустить его с помощью приведенного ниже сценария.
Через некоторое время, когда я возвращаюсь для обновления сервера, pid-файл исчезает, и процесс uwsgi все еще выполняется. Это делает этот подход бесполезным.
project_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
project_A_server_restart.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
Что может быть причиной удаления pid-файла? как я могу предотвратить это?