我想调用一个函数,该函数启动一个子进程,如下所示:
processrrd = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
outputrrd = processrrd.communicate()
(output, error) = outputrrd
现在,我想使用multiprocessing.pool来对工作程序进行校验。
问题是最后一个Popen覆盖了变量outputrrd ist。
因此,是否可以创建特定的变量(processrrd),例如name1_processrrd?
问候。
斯特凡
UDPATE:
尝试过这个,但是过程的输出是相同的。
processrrd = []
processrrd.append((hostgroup+'_processrrd'))
print processrrd
for name in processrrd:
print name
name = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
outputrrd = name.communicate()
(output, error) = outputrrd
最佳答案
甚至不用考虑multiprocessing
是否可以为您提供更好的方法(我想它确实可以,但一点也不了解),最好将每个句柄存储在某种数据结构中,例如dict
或list
,例如
# TODO Use name and key that works for you.
my_processes['de_DE@euro'] = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})