1
我试图用if语句启动一个进程for item in list
。 if语句(如果满足条件)将调用传递2个参数的函数。该函数然后遍历另一个列表,为列表中的每个列表运行子进程调用。现在出于某种原因,我没有从子流程中获取任何输出。如果我在命令行中运行相同的命令,它可以正常工作,并且在我开始执行多处理器之前,它工作正常。任何人都可以解释发生了什么?在循环问题中的多处理
这是函数如何被调用。
userlist = (name1, name2, name3)
if condition == True:
for user in userlist:
p = multiprocessing.Process(target=tllocaltF, args=(serverlist, user))
jobs.append(p)
p.start()
这是它被调用函数:
def tllocaltF(domain, user):
#function iterates list of target users locally
print (domain,user) #this prints out the username and domain as expected
print "Targeted Users Found On LocalHost\n"
try:
out = subprocess.check_output(["tasklist", "/V", "/FO", "List", "/FI", "USERNAME eq {0}\\{1}" .format(domain, user)], stderr=subprocess.STDOUT)
users = [item for item in out.split() if domain in item and user in item]
sortedl = set(users)
print sortedl #this is printing set([])
for item in sortedl:
print item
except CalledProcessError as e:
errormessage = e.output
print errormessage
print "\nCompleted"
如果我'打印出'我收到以下信息:信息:没有任何任务符合指定的标准正在运行。那么多进程实例对命令做了什么? – iNoob
你如何运行这段代码?即在什么环境下?在某些环境下,与子进程中的打印有关的各种错误/问题。 – roippi
我在Windows 7上运行代码 – iNoob