como fazer um uwsgi gracioso recarregar via script bash?


9

Eu tenho um aplicativo django que está executando um script bash. Eu preciso que o servidor nginx seja reiniciado, então eu corro o /etc/init.d/nginx reloadque funciona muito bem. Estou usando o restart uwsgiuwsgi, mas preciso fazer uma recarga normal em vez de uma reinicialização do servidor rígido.

Como posso fazer isso?


Atualmente, estou executando uma reload uwsgifunção bash subprocess.popen. Parece estar apenas recarregando o processo que está chamando o subprocesso, nem todos os sites sendo hospedados pela instância do uwsgi. importing uwsgie a execução uwsgi.reloadtambém parece afetar apenas o processo de chamada. Existe uma opção para o uwsgi através de python ou bash que permite reiniciar todos os processos do uwsgi

Respostas:


0

Você pode fazer isso em python

import uwsgi
uwsgi.reload()

o uwsgi.reload () está funcionando intermitentemente. parece estar reiniciando o servidor antes que alguns dos meus processos sejam concluídos. Estou executando isso através de um aplicativo django e quero que ele reinicie todo o servidor.
Darren

10

SIGHUP

Você pode reiniciar o uWSGI enviando o sinal SIGHUP para o seu processo uWSGI da seguinte maneira:

kill -HUP <process-id>

Se você deseja automatizar isso em um script bash, pode fazer com que o uWSGI anote seu ID de processo fornecendo a pidfileopção, por exemplo, como:

--pidfile=/tmp/uwsgi.pid

Em seguida, você pode recarregar o processo:

uwsgi --reload /tmp/uwsgi.pid

recarregar com toque

Você também pode iniciar o uWSGI com o touch-reloadargumento, 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 em execução com o modo de processo principal, mas geralmente é esse o caso.

Mais informações: http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.