Python 回溯错误后,子进程Popen不会终止:
在python脚本中,我向目标机器发出一个“Connect命令”。在每个脚本结束时,我发出一个“断开连接命令”。只要没有引发错误,脚本在整个子进程(连接和断开连接)中都可以正常工作 我在这里面临的问题如下面的例子所示,其中出现了键值错误,使我的进程挂起,即使我给出了一个“except”,它也不会做任何事情。我猜是因为脚本启动了一个Connect命令 它仍然紧紧抓住它。我不知道如何强制终止下面的Popen进程。请帮忙!!!。我在用蟒蛇25Python 回溯错误后,子进程Popen不会终止:,python,Python,在python脚本中,我向目标机器发出一个“Connect命令”。在每个脚本结束时,我发出一个“断开连接命令”。只要没有引发错误,脚本在整个子进程(连接和断开连接)中都可以正常工作 我在这里面临的问题如下面的例子所示,其中出现了键值错误,使我的进程挂起,即使我给出了一个“except”,它也不会做任何事情。我猜是因为脚本启动了一个Connect命令 它仍然紧紧抓住它。我不知道如何强制终止下面的Popen进程。请帮忙!!!。我在用蟒蛇25 try:# I am creating subproces
try:# I am creating subprocess to run my python scripts
retcode = subprocess.Popen(shlex.split('python '' ' + "'%s'"% (PythonTestScript) + ' ' ), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
#is done for parallel printing to Console and a file that works just fine
while True:
output = retcode.stdout.readline()
if output == ''and retcode.poll() is not None:
break
if output:
print output.strip()
outputfile.write(output)
except OSError, e:
print >>sys.stderr, "Execution failed:", e
returnvalue = os.popen('TASKKILL /PID '+str(retcode.pid)+' /F')
回溯(最近一次呼叫最后一次):
文件“PythonTestScript”,第27行,在
LocalDict('Name'、'Age'、'Date')
KeyError:('Name'、'Age'、'Date')此错误在子流程中引发,因此您的
除OSError外,e:
异常未到达,但如果输出==''且retcode.poll()不是无:应命中并中断循环。。。除非子进程本身没有在错误时终止。我想是这个孩子需要调试。谢谢你的回复。这正在起作用。我在子进程中添加了异常,它成功了。!