1

我想调用一个启动子进程的函数,如下所示:

processrrd = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
outputrrd = processrrd.communicate()
(output, error) = outputrrd

现在我想使用 multiprocessing.pool 来使工作人员瘫痪。问题是变量 outputrrd 被最后一个 Popen 覆盖了。那么,是否可以创建一个特定的变量(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
4

1 回答 1

1

甚至不考虑是否multiprocessing为您提供任何更好的方法(我猜它确实,但根本不了解它),您最好将每个句柄存储在某种数据结构中,例如 adict或 a 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'})
于 2012-07-31T14:38:01.300 回答