मैं इस समस्या के बदलावों में भी भाग गया - जैसा कि श्री पोकोमी द्वारा लिखे गए लेख में सलाह दी गई है, HUP
सिग्नल के साथ बंदूकधारी मास्टर प्रक्रिया को मारने से यह चाल चलती है।
यदि आप पाइथन watchdog
मॉड्यूल का उपयोग करते हैं, तो आप आसानी से फ़ाइल पर ऑटो-रीलोडिंग सेट कर सकते हैं; सेटअप वास्तव में सुंदर आत्म व्याख्यात्मक है, तो यहाँ है मेरे विकास supervisord.conf फ़ाइल से एक टुकड़ा है: नई-पंक्तियों कि विन्यास फाइल में वास्तव में नहीं कर रहे हैं इससे पहले कि
[program:ost2]
autostart=true
command=/usr/local/share/python/gunicorn --debug\
-c /Users/fish/Dropbox/ost2/ost2/utils/gunicorn/ost2-debug.py wsgi_debug
directory=/Users/fish/Dropbox/ost2/ost2
priority=500
; (etc)
[program:ost2-reloader]
autostart=true
autorestart=false
directory=/tmp
command=/usr/local/share/python/watchmedo shell-command\
--patterns="*.py;*.txt;*.html;*.css;*.less;*.js;*.coffee"\
-R --command='kill -HUP $(cat /usr/local/gunicorn/gunicorn.pid)'\
/Users/fish/Dropbox/ost2/ost2/
priority=996
; (etc)
(एनबी मुझे लगता है कि नमूने में स्लैश डाल - मैंने उन नईलाइनों को सुगमता के लिए डाला; मुझे यकीन नहीं है कि यह आईआरएल काम करता है)
पहला कार्यक्रम बंदूक प्रक्रिया है, जिसे मैं वर्कज़ुग डीबगर का उपयोग करने के लिए विकास के दौरान एक ही थ्रेड में चलाता हूं। दूसरा भाग दिलचस्प बात है: वह आदेश कहता है, "जब भी फ़ाइल का प्रत्यय इस सूची में से किसी एक से मेल खाता है तो इस निर्देशिका पेड़ में फ़ाइल में कोई बदलाव होने पर बंदूक पीआईडी फ़ाइल द्वारा निर्दिष्ट प्रक्रिया को मार दें"।
मेरे सहित कई लोगों के लिए आकर्षण की तरह काम करता है। यदि आप इसे नहीं जानते हैं, तो watchdog
बहुत उपयोगी है और अपने अधिकार में, एक नजर के लायक है।
यह बहुत अच्छा है, और यदि आप बंदूकधारी का प्रबंधन करने के लिए पर्यवेक्षक का उपयोग कर रहे हैं, तो आप अपने बिल्ली कमांड को प्रतिस्थापित कर सकते हैं: supervisorctl status gunicorn_task_name | sed -e's /.* pid \ ([0-9] \ {1,5 \} \)। */\ 1/g ' –