दिलचस्प पोस्ट
AngularJS- प्रत्येक मार्ग और नियंत्रक में लॉगिन और प्रमाणीकरण MySQL पंक्ति प्रारूप: निश्चित और गतिशील के बीच का अंतर? रूबी में, कैसे कॉरस () वास्तव में काम करता है? आईआईएस पर पायथन: कैसे? क्या कोई ऐसा तरीका है जो परिणाम के लिए प्रारंभ टुकड़े की तरह काम करता है? यदि कोई तत्व एनिमेटेड हो रहा है तो मैं jQuery के साथ कैसे पता लगा सकता हूं? जावास्क्रिप्ट-स्मृति विचारों में एक वायदेय श्रृंखला का निर्माण करना Android में DatePicker विजेट से दिनांक कैसे प्राप्त करें? समूह / संख्या से समूह-संख्या के आधार पर नंबर / लेबल डेटा-तालिका कैसे करें? जावास्क्रिप्ट अगर अन्य आशुलिपि पता लगाएं कि उपयोगकर्ता के रास्ते में उसमें एक विशिष्ट निर्देशिका है जावास्क्रिप्ट में दो सरणियों का एक संघ प्राप्त करना .NET वर्जन अंतिम क्षेत्र में अल्पविराम की अनुमति देता है PHP में गैर-अंग्रेज़ी फ़ाइल नामों को पुनरावृत्त कैसे करें मैं पर्ल में वास्तविक सरणी संदर्भ के लिए सरणी संदर्भ के stringified संस्करण को कैसे रूपांतरित कर सकता हूँ?

Python उपप्रक्रमित संवाद पद्धति का उपयोग करते समय निकास कोड कैसे प्राप्त करें?

पायथन की subprocess मॉड्यूल और communicate() विधि का उपयोग करते समय मैं कैसे बाहर निकलने का कोड प्राप्त करूं?

प्रासंगिक कोड:

 import subprocess as sp data = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE).communicate()[0] 

क्या मैं यह दूसरी तरह से कर रहा हूं?

Solutions Collecting From Web of "Python उपप्रक्रमित संवाद पद्धति का उपयोग करते समय निकास कोड कैसे प्राप्त करें?"

Popen.communicate यह (*) किया है जब returncode विशेषता सेट कर returncode यहां प्रासंगिक दस्तावेज़ अनुभाग है:

 Popen.returncode The child return code, set by poll() and wait() (and indirectly by communicate()). A None value indicates that the process hasn't terminated yet. A negative value -N indicates that the child was terminated by signal N (Unix only). 

तो आप बस कर सकते हैं (मैंने इसका परीक्षण नहीं किया लेकिन इसे काम करना चाहिए):

 import subprocess as sp child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE) streamdata = child.communicate()[0] rc = child.returncode 

(*) जिस तरह से इसे लागू किया गया है, उसके कारण ऐसा होता है: थ्रैड सेट अप करने के लिए बच्चे की धाराओं को पढ़ने के बाद, यह सिर्फ wait

आपको सबसे पहले यह सुनिश्चित करना चाहिए कि प्रक्रिया पूरी हो गई है और रिटर्न कोड को। .wait विधि का उपयोग करके पढ़ा गया है। यह कोड वापस करेगा यदि आप इसे बाद में एक्सेस करना चाहते हैं, तो यह Popen ऑब्जेक्ट में .returncode रूप में संग्रहीत है।

exitcode = data.wait() । बाल प्रक्रिया को अवरुद्ध कर दिया जाएगा यदि वह मानक आउटपुट / त्रुटि के लिए लिखता है, और / या मानक इनपुट से पढ़ता है, और कोई साथी नहीं है

.poll() वापसी कोड को अपडेट कर देगा।

प्रयत्न

 child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE) returnCode = child.poll() 

इसके अतिरिक्त, .poll() बाद कहा जाता है कि रिटर्न कोड ऑब्जेक्ट में child.returncode रूप में उपलब्ध है।