如何解释<defunct> c ++进程ubuntu </defunct>

时间:2013-09-13 12:50:44

标签: c++ ubuntu defunct

我正在运行一些C ++代码(8个独立进程在Ubuntu上运行,有8个内核)。

我正在使用python启动C进程:

def runC():
    numThreads = multiprocessing.cpu_count()
    threads = []
    for i in range(numThreads):
        args = ("./cprogram", arg1,arg2,arg3)
        popen = subprocess.Popen(args, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
        threads.append(popen)

    for t in threads:
       t.wait()
       output = t.stdout.read()
       err = t.stderr.read()
       if len(output) > 0:
          print "output: " + output
       if len(err) > 0:
          print "err: " + err

我一直在“解散”过程。那是什么意思?为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

原来是导致僵尸进程的t.wait()。根据作业完成的顺序,有一些处于僵尸状态,直到t.wait()到达它们。这不是一个真正的问题,这是我想要确定的。