मैं जितनी जल्दी हो सके उपप्रोसेस को बार-बार निष्पादित करना चाहता हूं। हालांकि, कभी-कभी प्रक्रिया बहुत अधिक समय लेती है, इसलिए मैं इसे मारना चाहता हूं। मैं नीचे की तरह (...) signal.signal का उपयोग करें:टाइमआउट के दौरान उपप्रोसेसर को मार या समाप्त कर दें?
ppid=pipeexe.pid
signal.signal(signal.SIGALRM, stop_handler)
signal.alarm(1)
.....
def stop_handler(signal, frame):
print 'Stop test'+testdir+'for time out'
if(pipeexe.poll()==None and hasattr(signal, "SIGKILL")):
os.kill(ppid, signal.SIGKILL)
return False
लेकिन कुछ समय के लिए इस कोड को क्रियान्वित करने से अगले दौर को रोकने की कोशिश करेंगे। /bin/sh:/home/lu/workspace/153/squib_driver के समय के लिए परीक्षण/घर/lu/workspace/152/treefit/test2 रोकें: नहीं मिला --- यह अगला निष्पादन है; कार्यक्रम गलत तरीके से इसे रोकता है।
क्या कोई इसे हल करने के बारे में जानता है? मैं समय में रुकना चाहता हूं समय 1 सेकंड निष्पादित नहीं करना। नींद (एन) अक्सर एन सेकंड प्रतीक्षा करें। मैं नहीं चाहता कि मैं चाहता हूं कि यह 1 सेकंड से कम
तो अनिवार्य रूप से यदि उपप्रोसेस 1 सेकंड से अधिक चलता है, तो आप इसे मारना चाहते हैं और अगले को शुरू करना चाहते हैं? क्या ये सही है? –
आप अपना सबप्रोसेस कैसे बनाते हैं? क्योंकि यह अभिव्यक्ति की तरह दिखता है __ppid = pipeexe.pid__ को अगले उपप्रोसेस मिल रहा है जो चलाया जाएगा !!! – mouad
तो अनिवार्य रूप से यदि उपप्रोसेस 1 सेकंड से अधिक चलाता है, तो आप इसे मारना चाहते हैं और अगला शुरू करना चाहते हैं? क्या ये सही है? हाँ, यह सही है – user504909