2011-07-19 9 views
18

पायथन में, क्या एक नई प्रक्रिया का आह्वान करने का कोई तरीका है, इसे एक ही संदर्भ दें, जैसे कि मानक आईओ धाराएं, वर्तमान प्रक्रिया को बंद करें, और आवंटित प्रक्रिया पर नियंत्रण दें? यह प्रक्रिया को प्रभावी ढंग से 'प्रतिस्थापित' करेगा।उपप्रोसेसर के आवेषण के साथ वर्तमान प्रक्रिया को बदलें?

मेरे पास एक ऐसा प्रोग्राम है जिसका व्यवहार मैं दोहराना चाहता हूं। हालांकि, यह एक थर्ड-पार्टी लाइब्रेरी का उपयोग करता है, और ऐसा लगता है कि एकमात्र तरीका है कि मैं वास्तव में उस लाइब्रेरी द्वारा लगाए गए धागे को मार सकता हूं() मेरी पायथन प्रक्रिया से बाहर निकलना है।

प्लस, ऐसा लगता है कि यह स्मृति को प्रबंधित करने में मदद कर सकता है।

उत्तर

22

आप os.execv() में रुचि हो सकती और दोस्तों:

इन कार्यों सब एक नए कार्यक्रम पर अमल, वर्तमान प्रक्रिया की जगह; वे वापस नहीं आते हैं। यूनिक्स पर, नई निष्पादन योग्य को वर्तमान प्रक्रिया में लोड किया गया है, और कॉलर के समान प्रक्रिया आईडी होगी। OSError अपवादों के रूप में त्रुटियों की सूचना दी जाएगी।

+7

ध्यान दें कि एक कॉल 'os.execvp (' python.exe ', [' python.exe ',' arg1 ',' arg2 '] जैसी कुछ हद तक दिखाई देगी। कुछ हद तक काउंटर-अंतर्ज्ञानी 'python.exe' दिखाई देने पर ध्यान दें। अधिक जानकारी के लिए [यह उत्तर] देखें (http://stackoverflow.com/a/18552137/1143274)। –

संबंधित मुद्दे