come fare un grazioso uwsgi ricaricare tramite script bash?


9

Ho un'applicazione Django che esegue uno script bash. Ho bisogno di riavviare il server nginx, quindi corro /etc/init.d/nginx reloadche funziona alla grande. Sto usando restart uwsgiper Uwsgi ma devo fare un grazioso ricaricare invece di un riavvio del server rigido.

Come posso fare questo?


Attualmente sto eseguendo una reload uwsgifunzione bash subprocess.popen. Sembra ricaricare solo il processo che chiama il sottoprocesso e non tutti i siti ospitati dall'istanza uwsgi. importing uwsgie l'esecuzione uwsgi.reloadsembra influenzare anche solo il processo di chiamata. Esiste un interruttore per uwsgi tramite python o bash che consente di riavviare tutti i processi uwsgi

Risposte:


0

Puoi farlo in Python

import uwsgi
uwsgi.reload()

uwsgi.reload () funziona in modo intermittente. sembra riavviare il server prima che alcuni dei miei processi siano terminati. sto eseguendo questo tramite un'applicazione Django e voglio che riavvii l'intero server.
darren,

10

SIGHUP

Puoi riavviare uWSGI inviando il segnale SIGHUP al tuo processo uWSGI in questo modo:

kill -HUP <process-id>

Se vuoi automatizzare questo in uno script bash, puoi fare in modo che uWSGI scriva il suo id di processo fornendo l' pidfileopzione, ad esempio come:

--pidfile=/tmp/uwsgi.pid

Quindi è possibile ricaricare il processo:

uwsgi --reload /tmp/uwsgi.pid

touch-reload

Puoi anche avviare uWSGI con l' touch-reloadargomento, che specifica un file che quando viene toccato fa ricaricare uWSGI:

--touch-reload=/some/file

Quindi uWSGI verrà ricaricato quando tocchi il file:

touch /some/file

Ricorda che puoi ricaricare uWSGI solo quando è in esecuzione con la modalità di processo principale, ma di solito è così.

Ulteriori informazioni: http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.