कैसे bash स्क्रिप्ट के माध्यम से एक सुंदर uwsgi पुनः लोड करने के लिए?


9

मेरे पास एक django एप्लिकेशन है जो बैश स्क्रिप्ट निष्पादित कर रहा है। मुझे nginx सर्वर को पुनरारंभ करने की आवश्यकता है इसलिए मैं चलाता हूं /etc/init.d/nginx reloadजो बहुत अच्छा काम करता है। मैं restart uwsgiuwsgi के लिए उपयोग कर रहा हूं, लेकिन मुझे एक हार्ड सर्वर रिस्टार्ट के बजाय एक ग्रेसफुल रीलोड करने की जरूरत है ।

मैं यह कैसे कर सकता हूँ?


मैं वर्तमान में एक बश reload uwsgiफ़ंक्शन के माध्यम से चला रहा हूं subprocess.popen। यह केवल उस प्रक्रिया को पुनः लोड करता प्रतीत हो रहा है जो सबप्रोसेस को कॉल कर रहा है न कि सभी साइटें जो उव्सगी उदाहरण द्वारा होस्ट की जा रही हैं। importing uwsgiऔर दौड़ना uwsgi.reloadभी केवल कॉलिंग प्रक्रिया को प्रभावित करता है। क्या अजगर या बैश के माध्यम से या तो उव्सगी के लिए एक स्विच है जो सभी उव्सगी की प्रक्रिया को फिर से शुरू करने की अनुमति देता है

जवाबों:


0

आप इसे अजगर में कर सकते हैं

import uwsgi
uwsgi.reload()

uwsgi.reload () रुक-रुक कर काम कर रहा है। यह लगता है कि मेरी कुछ प्रक्रियाएँ पूरी होने से पहले सर्वर को फिर से शुरू किया जाए। मैं एक django एप्लिकेशन के माध्यम से इसे चला रहा हूं और चाहता हूं कि यह पूरे सर्वर को पुनः आरंभ करे।
डारेन

10

उच्छ्वास करो

आप अपनी uWSGI प्रक्रिया के लिए SWSUP संकेत भेजकर uWSGI को पुनः आरंभ कर सकते हैं:

kill -HUP <process-id>

यदि आप इसे bash स्क्रिप्ट में स्वचालित करना चाहते हैं, तो आप uWSGI लिख सकते हैं यह pidfileविकल्प की आपूर्ति करके प्रक्रिया आईडी है , उदाहरण के लिए:

--pidfile=/tmp/uwsgi.pid

फिर आप इस प्रक्रिया को फिर से लोड कर सकते हैं:

uwsgi --reload /tmp/uwsgi.pid

स्पर्श पुनः लोड

आप touch-reloadतर्क के साथ uWSGI भी शुरू कर सकते हैं , जो उस फ़ाइल को निर्दिष्ट करता है, जिसे छूने पर uWSGI पुनः लोड हो जाता है:

--touch-reload=/some/file

जब आप फ़ाइल को स्पर्श करेंगे तो uWSGI पुनः लोड होगा:

touch /some/file

याद रखें कि जब आप मास्टर प्रोसेस मोड के साथ चल रहे होते हैं तो आप केवल uWSGI को पुनः लोड कर सकते हैं, लेकिन आमतौर पर ऐसा ही होता है।

अधिक जानकारी: http://uwsgi-docs.readthedocs.io/en/latest/Management.html#reloading-the-server

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.