zarif bir uwsgi bash betiği ile yeniden yükleme nasıl?


10

Bir bash betiği yürüten bir django uygulama var. /etc/init.d/nginx reloadHangi harika çalışıyor çalıştırmak için yeniden başlatmak için nginx sunucusu gerektirir . Ben kullanıyorum restart uwsgiuwsgi için ama yapmanız gereken zarif reload sert sunucu yeniden başlatma yerine.

Bunu nasıl yapabilirim?


Şu anda bash reload uwsgiişlevini çalıştırıyorum subprocess.popen. Sadece uwsgi örneği tarafından barındırılan tüm siteler değil, alt süreci çağıran süreci yeniden yüklemek gibi görünüyor. importing uwsgive koşmak uwsgi.reloadda sadece çağrı sürecini etkiliyor gibi görünüyor. Uwsgi için python veya bash üzerinden tüm uwsgi işlemlerinin yeniden başlatılmasına izin veren bir anahtar var mı

Yanıtlar:


0

Python ile yapabilirsiniz

import uwsgi
uwsgi.reload()

uwsgi.reload () zaman zaman çalışıyor. bazı işlemlerim bitmeden sunucuyu yeniden başlatıyor gibi görünüyor. Ben bir django uygulaması aracılığıyla bu çalıştırıyorum ve tüm sunucuyu yeniden başlatmak istiyorum.
darren

11

SIGHUP

UWSGI işlemini uWSGI işleminize şu şekilde göndererek uWSGI'yi yeniden başlatabilirsiniz:

kill -HUP <process-id>

Bunu bir bash betiğinde otomatikleştirmek istiyorsanız, uWSGI'nın işlem kimliğini pidfile, örneğin aşağıdaki gibi seçeneği sağlayarak yazmasını sağlayabilirsiniz :

--pidfile=/tmp/uwsgi.pid

Ardından işlemi şu şekilde yeniden yükleyebilirsiniz:

uwsgi --reload /tmp/uwsgi.pid

dokunmatik yeniden

UWSGI'yı touch-reload, dokunduğunda uWSGI'nın yeniden yüklenmesini sağlayan bir dosyayı belirten argümanla da başlatabilirsiniz :

--touch-reload=/some/file

Ardından dosyaya dokunduğunuzda uWSGI yeniden yüklenir:

touch /some/file

UWSGI'yı yalnızca ana işlem moduyla çalışırken yeniden yükleyebileceğinizi unutmayın, ancak genellikle durum böyledir.

Daha fazla bilgi: http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.