दिलचस्प पोस्ट
ग्रेड 0.9। + / 0.9.2 त्रुटि: क्लास को लोड करने में असमर्थ। Com.android.builder.testing.api.DeviceProvider ' अजगर BeautifulSoup खोजने के लिए कई टैग दे जांचें कि क्या क्लास किसी जेनेरिक क्लास से ली गई है पैटर्न ग्राफ़ के लिए भरता है गिट में HEAD ^ और HEAD ~ के बीच क्या अंतर है? सीएसएस विशिष्टता, मीडिया प्रश्न और न्यूनतम चौड़ाई IOS UITableView हैडर दृश्य जोड़ना (अनुभाग शीर्षलेख नहीं) इरादा-फ़िल्टर का उपयोग करके यूआरएल से एंड्रॉइड ऐप खोलें समान रूप से एक ही यादृच्छिक numpy सरणी बनाएँ क्यों "System.out.println" एंड्रॉइड में काम नहीं करता है? फ़ंक्शन के पास जाने के बाद चर का मूल नाम निर्धारित करें स्विच केस स्टेटमेंट के अंदर अभिव्यक्ति एक अहस्ताक्षरित int को नकारात्मक संख्याएं निर्दिष्ट करना? VM और PyCharm के साथ कस्टम PYTHONPATH को कॉन्फ़िगर कैसे करें? हाइबरनेट मैपिंग पैकेज

भागो प्रक्रिया और रुको मत

मैं एक प्रक्रिया चलाने के लिए और वापसी के लिए इंतजार नहीं करना चाहता हूँ। मैंने इस तरह P_NOWAIT और उपप्रक्रिया के साथ अंडे की कोशिश की है:

app = "C:\Windows\Notepad.exe" file = "C:\Path\To\File.txt" pid = subprocess.Popen([app, file], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).pid 

हालांकि, कंसोल खिड़की जब तक मैं नोटपैड बंद रहता है। क्या यह प्रक्रिया शुरू करना संभव है और इसे पूरा करने के लिए इंतजार नहीं करना चाहिए?

Solutions Collecting From Web of "भागो प्रक्रिया और रुको मत"

यह कॉल बाल प्रक्रिया को समाप्त करने के लिए प्रतीक्षा नहीं करता है (लिनक्स पर) मुझसे पूछें कि close_fds क्या करता है; मैंने कुछ साल पहले कोड लिखा था (बीटीडब्ल्यू: subprocess.Popen का दस्तावेज़ीकरण। subprocess.Popen भ्रामक है, आईएमएचओ।)

 proc = Popen([cmd_str], shell=True, stdin=None, stdout=None, stderr=None, close_fds=True) 

संपादित करें:

मैंने उपप्रक्रिया के दस्तावेज़ीकरण को देखा, और मेरा मानना ​​है कि आपके लिए महत्वपूर्ण पहलू stdin=None, stdout=None, stderr=None, । अन्यथा Popen कार्यक्रम के आउटपुट कब्जा, और आप इसे देखने की उम्मीद है। close_fds माता पिता की प्रक्रिया बनाता है 'फ़ाइल संभालता है बच्चे के लिए दुर्गम

आखिरकार मुझे यह काम करने के लिए मिला मैं "पायथन 2.6.6 (r266: 84297, 24 अगस्त 2010, 18:13:38) [एमएससी v.1500 64 बिट (एएमडी 64)] win32" चला रहा हूं "। यहां बताया गया है कि मुझे इसे कैसे कोड करना था:

 from subprocess import Popen DETACHED_PROCESS = 0x00000008 cmd = [ sys.executable, 'c:\somepath\someprogram.exe', parm1, parm2, parm3 ] p = Popen(cmd,shell=False,stdin=None,stdout=None,stderr=None,close_fds=True,creationflags=DETACHED_PROCESS) 

यह मानक इनपुट / आउटपुट के सभी पाइपिंग को बंद करता है और शेल में कहा गया प्रोग्राम को निष्पादित नहीं करता है। DETACHED_PROCESS को 'creationflags' सेट करना मेरे लिए चाल करना चाहता था मैं भूल गया जहां मुझे इसके बारे में पता चला, लेकिन एक उदाहरण यहाँ प्रयोग किया जाता है ।

मुझे लगता है कि इसे कार्यान्वित करने के लिए सरल तरीके P_NOWAIT ध्वज से गुजरने वाले कार्यों के ओएसस्पैन * परिवार का उपयोग कर रहा है।

उदाहरण के लिए, एक बड़ी फ़ाइल को नई निर्देशिका में कॉपी करने के लिए cp प्रक्रिया पैदा होगी और इसकी प्रतीक्षा करने के लिए परेशान नहीं होंगे।

 import os os.spawnlp(os.P_NOWAIT, 'cp', 'cp', '/path/large-file.db', '/path/dest')