Você pode fazer isso em python
import uwsgi
uwsgi.reload()
Eu tenho um aplicativo django que está executando um script bash.
Eu preciso que o servidor nginx reinicie, então eu corro /etc/init.d/nginx reload , o que funciona muito bem. Eu tenho usado restart uwsgi para o uwsgi mas preciso fazer um reload gracioso em vez de reiniciar o servidor.
Como posso fazer isso?
No momento, estou executando uma função bash reload uwsgi por meio de subprocess.popen . Parece estar apenas recarregando o processo que está chamando o subprocesso nem todos os sites hospedados pela instância uwsgi. importing uwsgi e a execução uwsgi.reload parece também afetar apenas o processo de chamada. Existe uma opção para qualquer uwsgi através de python ou bash que permite reiniciar todos os processos uwsgi
SIGHUP
Você pode reiniciar o uWSGI enviando o sinal SIGHUP para o seu processo uWSGI da seguinte forma:
kill -HUP <process-id>
Se você quiser automatizar isso em um script bash, você pode fazer com que o uWSGI escreva o ID do processo fornecendo a opção pidfile , por exemplo, como:
--pidfile=/tmp/uwsgi.pid
Você pode recarregar o processo:
uwsgi --reload /tmp/uwsgi.pid
touch-reload
Você também pode iniciar o uWSGI com o argumento touch-reload , que especifica um arquivo que, quando tocado, faz com que o uWSGI seja recarregado:
--touch-reload=/some/file
Em seguida, o uWSGI será recarregado quando você tocar no arquivo:
touch /some/file
Lembre-se de que você só pode recarregar o uWSGI quando estiver sendo executado com o modo de processo mestre, mas normalmente é o caso.
Mais informações: link