bagaimana cara me-reload uwsgi dengan anggun melalui skrip bash?

9

Saya memiliki aplikasi Django yang menjalankan skrip bash. Saya memerlukan server nginx untuk me-restart jadi saya menjalankan /etc/init.d/nginx reloadyang berfungsi dengan baik. Saya telah menggunakan restart uwsgiuntuk uwsgi tetapi saya perlu melakukan reload yang anggun daripada restart server keras.

Bagaimana saya bisa melakukan ini?


Saat ini saya menjalankan reload uwsgifungsi bash subprocess.popen. Tampaknya hanya memuat ulang proses yang memanggil subproses tidak semua situs di-host oleh instance uwsgi. importing uwsgidan berlari uwsgi.reloadtampaknya juga hanya mempengaruhi proses panggilan. Apakah ada saklar untuk uwsgi melalui python atau bash yang memungkinkan memulai kembali semua proses uwsgi

darren
sumber

Jawaban:

0

Anda bisa melakukannya dengan python

import uwsgi
uwsgi.reload()
Mike
sumber
uwsgi.reload () berfungsi sebentar-sebentar. tampaknya me-restart server sebelum beberapa proses saya selesai. Saya menjalankan ini melalui aplikasi Django dan ingin me-restart seluruh server.
darren
10

PENJUALAN

Anda dapat me-restart uWSGI dengan mengirimkan sinyal SIGHUP ke proses uWSGI Anda seperti:

kill -HUP <process-id>

Jika Anda ingin mengotomatiskan ini dalam skrip bash, Anda dapat meminta uWSGI menghapus id prosesnya dengan menyediakan pidfileopsi, misalnya seperti:

--pidfile=/tmp/uwsgi.pid

Kemudian Anda dapat memuat ulang proses dengan:

uwsgi --reload /tmp/uwsgi.pid

sentuh-ulang

Anda juga dapat memulai uWSGI dengan touch-reloadargumen, yang menentukan file yang ketika disentuh membuat uWSGI memuat ulang:

--touch-reload=/some/file

Kemudian uWSGI akan memuat ulang saat Anda menyentuh file:

touch /some/file

Ingatlah bahwa Anda hanya dapat memuat ulang uWSGI saat dijalankan dengan mode proses master, tetapi biasanya demikian.

Informasi lebih lanjut: http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server

gitaarik
sumber