python 多进程实例 求教

python 多进程实例 求教

程序目的:主程序中开5个子进程,然后当子进程中的某一个异常退出或者正常结束,主程序都要监测出来,并打印一些报告。主程序一直运行,直至5个子进程都终止。
下面是我参考大家的意见总结出来的,不过在如何监测子进程的异常退出或者结束那了还不会,请高手不吝赐教@!

[Copy to clipboard] [ - ]
CODE:
...
pidList = []
def run(program,*args):
        pid = os.fork()
        pidList.append(pid)
        if not pid:
                os.execvp(program, (program,) + args)
def main():
    run('python','hello1.py')
    run('python','hello2.py')
    run('python','hello3.py')
    run('python','hello4.py')
    run('python','hello5.py')
    问题在这了,接下来如何进行监测呢??清大虾指教
main()
...



import subprocess
sub2 = subprocess.Popen("python a2.py", shell=False)
while True:
    ret1=subprocess.Popen.poll(sub2)
    if ret1 ==0:
        print  sub2.pid ,"结束"
        break
    elif ret1 is None:
        print sub2.pid ,"运行"
    else :
        print sub2.pid ,"终止"
        break
很感谢luffy.deng前辈的指导!
还有个小问题,在主进程里开启的子进程,他们每个都会输出一些内容来。能不能在当前终端下不显示这些内容。只显示主进程的输出内容。就是想让子进程在后台运行。我查了一下Popen()类的参数,没找到有这样功能的函数活参数。。。
ubprocess.Popen("python a2.py", stdout=subprocess.PIPE,shell=False)
太好了。
shell = False
是不是应该设置为True呢。刚测试了,False的情况出错。True的情形就能正常解释。
另外,子进程只是光输出内容,且比较多,而且又没有进程从管道中读取数据,会不会对pipe造成影响??
如果有影响的话,我想把子进程输出的内容写入到文件里去,该怎么办呢。

os.fork
os.wait
os.popen
能不能详细点?
os.fork  os.wait  捕捉信号纯粹是杀鸡用牛刀。
shell = False
是不是应该设置为True呢。刚测试了,False的情况出错。True的情形就能正常解释。
另外,子进程只是光输出内容,且比较多,而且又没有进程从管道中读取数据,会不会对pipe造成影响??
如果有影响的话,我想把子进程输出的内容写入到文件里去,该怎么办呢。


请前辈分析一下
shell=flase是可以的只是第一个参数要是一个序列,具体的看一下
http://www.python.org/doc/2.5.2/lib/node528.html