रास्पियन (या डेबियन) में एक डेमन (सेवा) के रूप में अजगर स्क्रिप्ट को चलाने का सही तरीका क्या है?


9

मैं अपने पाई का उपयोग एक घरेलू थर्मोस्टेट के रूप में करना चाहता हूं, नियंत्रण लूप के साथ एक अजगर स्क्रिप्ट में चल रहा है। मैं इसे स्टार्टअप पर रास्पियन (डेबियन) पर एक डेमन के रूप में चलाना चाहता हूं।

/Etc/init.d/skeleton में एक उदाहरण bash स्क्रिप्ट है, लेकिन यह bash और python को एक साथ मैश करने के लिए अनुपयुक्त लगता है। अजगर मॉड्यूल और डिब पैकेज हैं जो स्टार्ट / स्टॉप / अलर्ट कमांड प्रोसेसिंग में मदद कर सकते हैं:

क्या किसी ने पाई पर "वास्तविक समय" प्रतिक्रिया नियंत्रण लूप को निष्क्रिय करने के लिए एक विशेष दृष्टिकोण के साथ सफलता हासिल की है?

जवाबों:


6

मैंने कई परियोजनाओं पर ऐसा किया है। https://bitbucket.org/dnetman99/raspberrypiprojects अगर आप gpsdpiTracker को देखते हैं, trackerServer.pyतो स्क्रिप्ट को निष्क्रिय करने के लिए डेमन क्लास का उपयोग करता है। मैं तो बस restartdयह देखने के लिए उपयोग करता हूं कि क्या यह बंद हो जाता है और इसे पुनरारंभ करता है, जिसका अर्थ यह भी है कि यह बूट के बाद भी शुरू होगा। मैंने शुरुआत के लिए कंकाल फ़ाइल का उपयोग भी किया है, डेमन को रोकना है, लेकिन यदि आप इस पद्धति का उपयोग करते हैं तो आवश्यक नहीं है।

restartd = sudo apt-get install restartd

धन्यवाद! बहुत बढ़िया उदाहरण। देखूंगा कि क्या मैं उस कोड में से कुछ को रीसायकल कर सकता हूं। डेमन वर्ग PEP 3143 पर आधारित अजगर-डेमॉन मॉड्यूल से है और पुनरारंभ यहां है
hobs

वास्तव में ऐसा लगता है कि आपने अपना डेमन क्लास रोल किया। अच्छा लगा।
hobs

1
शी-बैंग लाइन को छोड़कर, dnetman99 के बिटबकेट में दानव वर्ग 2007 से सैंडर मारेचल के साधारण डेमन के समान है । क्रेडिट जहां क्रेडिट के कारण है। के माध्यम से यहाँ
RolfBly

2

जिस तरह से हम क्लाइंट pybit- क्लाइंट में डेमोनाइज़ करते हैं, उसे देखें।

https://github.com/nicholasdavidson/pybit

जिसे छोटे एआरएम बॉक्स 24/7 पर डेमॉन के रूप में चलाने के लिए डिज़ाइन किया गया था।

लॉगिंग, सिग्नल हैंडलिंग, स्क्रिप्ट शुरू / बंद करने आदि को हैंडल करता है ...

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