我有一个函数可以打开一个进程并发送命令、获取结果并在此基础上运行更多命令。在任何阶段它都可能失败并返回,或者在最后打印出成功声明。现在这一切都发生在主线程上,所以我的程序在发生这种情况时停止了(大约需要 6 分钟)。您如何更改此代码以在后台运行但最后打印出我需要的一行?
这是一个片段:
def ran_network_listen(access_point_id):
# "read hnb" command, check if location has IP set.
proc = subprocess.Popen(cmd_rancli, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
proc_stdout = proc.communicate(ran_opt_read_hnb)[0]
parse = proc_stdout.split('\n')
list_of_aps = ""
for item in parse:
if access_point_id in item:
if "n/c" in item:
print "AP has no ip."
#return
else:
print item
list_of_aps += item
if not access_point_id in list_of_aps:
print "AP not registered"
return
//etc
首先,我只是尝试了这个:
t = Thread(target=ran_network_listen, args=(args.ap_id,))
t.start()
然而,不仅仅是在前台运行。