आप अपने आवेदन स्टैंडअलोन चलाने के लिए (अगर मैं सही ढंग से समझ में आ), आप किसी भी अन्य (गैर वेब) आवेदन के साथ इस तरह संभाल सकता चाहते हैं के रूप में।
यदि आप बस अपने प्रोग्राम को पृष्ठभूमि में चलाने के लिए चाहते हैं, तो आप this receipe पढ़ सकते हैं जो बताता है कि डिमन एप्लिकेशन कैसे बनाएं और इस विषय (टिप्पणियों में) के बारे में अच्छी चर्चा करें।
दूसरी ओर, आप अपने अनुप्रयोग के साथ एक "प्रणाली डेमॉन" (जो हर सिस्टम के स्टार्टअप पर शुरू होता है) बनाने के लिए चाहते हैं, तो मैं एक खोल स्क्रिप्ट के साथ जाना चाहते हैं। अपने सिस्टम के लिए स्टार्टअप स्क्रिप्ट बनाने के तरीके को देखने के लिए, आप अपनी मशीन पर अन्य स्टार्टअप स्क्रिप्ट से प्रेरणा प्राप्त कर सकते हैं। एक समाधान इस तरह से आप भी अपने प्रक्रिया को रोकने में सक्षम होगा python my_app.py &
के साथ पृष्ठभूमि (स्टार्टअप स्क्रिप्ट से) में अपने कार्यक्रम चलाने के लिए, और फिर $!
चर का उपयोग प्रक्रिया 'पीआईडी पाने के लिए और एक फ़ाइल में संग्रहीत करते हैं, हो सकता है "पीआईडी फ़ाइल" पढ़ने और kill
आदेश (एक अपनी प्रक्रिया SIGINT
करने के लिए एक KeyboardInterrupt
अपवाद अपने आवेदन में उठाया जा भड़काने जाएगा भेजने) का उपयोग करके।
संपादित करें:
अपने प्रश्न टिप्पणी में, आप python main.py &
प्रयोग करने के लिए असुरक्षित हो सकता है (आवेदन अगर यह विफल/दुर्घटनाग्रस्त पुनः आरंभ नहीं होता है, लेकिन जो आपके सिस्टम पर किसी अन्य डेमॉन के साथ एक ही है कहना उदाहरण के लिए, अगर अपाचे क्रैश हो गया है, तो यह स्वयं से पुनरारंभ नहीं होगा)। यदि आप क्रैश होने पर अपने एप्लिकेशन को पुनरारंभ करना चाहते हैं, तो आपको दूसरा डिमन लिखना होगा, यदि आपका एप्लिकेशन अभी भी चल रहा है, तो नियमित अंतराल पर जांच करेगा, और यदि आवश्यक हो तो इसे पुनरारंभ करें।
लॉगिंग चीज़ के बारे में, आप या तो अपना आवेदन आउटपुट stdout/stderr
पर कर सकते हैं और इसे स्टार्टअप स्क्रिप्ट (python main.py &> /path/to/app.log &
) से रीडायरेक्ट कर सकते हैं या logging
मॉड्यूल का उपयोग करके अपने एप्लिकेशन से लॉगिंग संभाल सकते हैं।
आप इसे डेमॉन के रूप में क्यों चलाना चाहते हैं? – moraes
'पायथन main.py' के साथ चल रहा है और थोड़ा असुरक्षित लगता है। यदि यह विफल/क्रैश हो जाता है तो मैं इसे स्वचालित रूप से पुनरारंभ करना चाहूंगा, डेमॉन को लॉग फ़ाइल में भी लिखना होगा। – fredrik
@fredrik मैंने क्रैश हैंडलिंग और मेरे उत्तर – MatToufoutu