मुझे पायथन स्क्रिप्ट चलाने की ज़रूरत है और यह सुनिश्चित कर लें कि यह समाप्त होने के बाद पुनरारंभ होगा। मुझे पता है कि यूनिक्स समाधान है जिसे पर्यवेक्षक कहा जाता है। लेकिन दुर्भाग्यवश सर्वर जहां मेरी स्क्रिप्ट को चलाना है विंडोज़ पर है। क्या आप जानते हैं कि कौन सा टूल उपयोगी हो सकता है? धन्यवादक्या पर्यवेक्षक के लिए विंडोज एनालॉग है?
उत्तर
बड़े वसा अस्वीकरण here के बावजूद, आप विंडोज में Cygwin के साथ पर्यवेक्षक चला सकते हैं; यह पता चला है कि साइगविन एक पॉज़िक्स पर्यावरण को अनुकरण करने का एक लंबा सफर तय करता है, वास्तव में पर्यवेक्षक अपरिवर्तित चलता है। एक नया टूल सीखने की कोई आवश्यकता नहीं है, और यदि आप कई प्लेटफार्मों में एक जटिल परियोजना को तैनात करने की ज़रूरत है तो आप काफी काम भी बचाएंगे।
यहाँ मेरी नुस्खा है:
- आप इसे अभी तक नहीं किया है, तो Cygwin स्थापित करें। स्थापना प्रक्रिया के दौरान, पायथन का चयन करें।
- सिग्विन टर्मिनल से, सामान्य रूप से virtualenv इंस्टॉल करें।
supervisord के लिए एक virtualenv बनाएं, और फिर हमेशा की तरह स्थापित: हमेशा की तरह
pip install supervisord
कॉन्फ़िगर supervisord। ध्यान रखें कि पर्यवेक्षक सिग्विन के साथ चल रहे होंगे, इसलिए आप बेहतर सिग्विन मार्ग (सी: \ myservers \ project1 का अनुवाद साइगविन में/cygdrive/c/myservers/project1 में अनुवाद करते हैं) का उपयोग करते हैं।
अब आप पर्यवेक्षक को सेवा के रूप में स्थापित करना चाहते हैं। यहाँ कैसे मैं यह कर दिया गया है:
cygrunsrv --install supervisord --path /home/Administrator/supervisor/venv/bin/python --args "/home/Administrator/supervisor/venv/bin/supervisord -n -c /home/Administrator/supervisor/supervisord.conf"
Windows सेवा प्रबंधक पर जाएं और शुरू सेवा supervisord है कि आप बस स्थापित।
प्वाइंट 5, Windows सेवा के रूप supervisord स्थापित करता है ताकि आप इसे (शुरू/बंद/पुनः चालू करें) Windows सेवा प्रबंधक से नियंत्रित कर सकते हैं। लेकिन चीजें जो आप supervisorctl
के साथ सामान्य रूप से काम कर सकते हैं, जिसका अर्थ है कि आप बस अपनी पुरानी कॉन्फ़िगरेशन फ़ाइल को तैनात कर सकते हैं।
आप शायद अपनी स्क्रिप्ट को Windows Service
के रूप में चलाने की इच्छा रखते हैं। ऐसा करने के लिए आपको python-win32 लाइब्रेरी की आवश्यकता होगी। यह question का यह अच्छा वर्णन है कि आप इसे कैसे करने के बारे में जानते हैं, साथ ही अन्य संबंधित संसाधनों के लिंक का एक समूह भी है। यह question भी उपयोग किया जा सकता है।
ए Windows Service
यह है कि आप किसी भी स्क्रिप्ट को कैसे लपेटना चाहते हैं जिसे लगातार विंडोज़ पर चलाने की आवश्यकता है। बूट पर स्वचालित रूप से प्रारंभ करने के लिए उन्हें कॉन्फ़िगर किया जा सकता है, और विफलताओं को संभाल सकता है। किसी को भी प्रक्रिया को मारने से रोकने के लिए कुछ भी नहीं जा रहा है, लेकिन उस संभावित स्थिति को संभालने के लिए, आप केवल bat
फ़ाइल बना सकते हैं और sc
कमांड का उपयोग यह देखने के लिए कर सकते हैं कि यह चल रहा है या नहीं और सेवा को पुनरारंभ नहीं किया गया है। प्रत्येक 60 सेकंड चलाने के लिए बस bat
फ़ाइल शेड्यूल करें (या जो भी आपकी स्क्रिप्ट के संभावित रूप से नीचे हो, उचित हो)।
विंडोज सेवा के रूप में पाइथन स्क्रिप्ट चलाना इसे पृष्ठभूमि में ही चलाएगा। यह पर्याप्त नहीं है। मेरा लक्ष्य स्क्रिप्ट को अटूट करने के लिए है। किसी को मारने पर भी स्क्रिप्ट को पुनरारंभ करना होगा। – pss
उस स्थिति में, 'मारे गए' प्रक्रिया को संभालने के लिए बैट फ़ाइल, एससी कमांड और सिस्टम शेड्यूलर का उपयोग करें। मेरा संपादन देखें। –
आप एक supervisord की तरह प्रक्रिया प्रबंधक है कि सबसे POSIX ओएस पर चलता है और supervisord तरह अजगर आधारित है चाहते हैं, तो आप honcho जो फोरमैन की एक अजगर बंदरगाह है पर गौर करना चाहिए (रूबी आधारित):
http://pypi.python.org/pypi/honcho/
यह मैक, लिनक्स पर अच्छा काम करता है, लेकिन (वास्तव में) नहीं अभी तक खिड़कियों ... (संपादन मेरी प्रारंभिक जवाब जहाँ मैं आशावादी ने कहा था कि यह पहले से ही एक पुल अनुरोध है कि के बाद से त्याग दिया गया है के आधार पर विंडोज पर काम कर रहा था)
एक कांटा है जो यहां विंडोज समर्थन प्रदान करता है https://github.com/redpie/honcho और विंडोज़ का समर्थन करने के लिए कुछ काम प्रगति पर https://github.com/nickstenning/honcho/issues/28 ... कम से कम यह निकट भविष्य में एक संभावित समाधान बन सकता है।
यहां विंडोज का समर्थन करने के लिए एक फोरमैन कांटा भी है: https://github.com/ddollar/foreman-windows जो आपके लिए काम कर रहा है, हालांकि मैंने कभी कोशिश नहीं की।
तो अभी के लिए, एक विंडोज सेवा आपका सबसे अच्छा शॉर्ट टर्म विकल्प हो सकता है।
honcho के नवीनतम ट्रंक में अब विंडोज़ समर्थन है :) –
का उपयोग करें और आनंद लें हाय, लिल 'Honcho के बारे में प्रश्न: क्या यह वास्तव में पर्यवेक्षक की तरह असफल कार्यों को पुनरारंभ करना चाहिए? यह तब नहीं होता जब मैं एक को मार डालता हूं। तो क्या हमें पर्यवेक्षक और honcho के संयोजन का उपयोग करना है? धन्यवाद। – Ehvince
वास्तव में honcho पर्यवेक्षक की तुलना में फोरमैन की तरह अधिक है। यह भी देखें https://blog.codeship.com/using-honcho-create-multi-process-docker-container/ –
एक छोटी सूचना: यह अब 'पाइप इंस्टॉल पर्यवेक्षक' है और इसे पाइथन 2.4+ की आवश्यकता है लेकिन यह नहीं है किसी भी 3+ संस्करणों के साथ काम करते हैं। – Peon