Avoiding defunct processes

Chris Angelico rosuav at gmail.com
Fri Nov 2 03:36:40 CET 2012

On Fri, Nov 2, 2012 at 1:16 PM, Richard <richardbp at gmail.com> wrote:
> Hello,
> I create child processes with subprocess.Popen().
> Then I either wait for them to finish or kill them.
> Either way these processes end up as defunct until the parent process
> completes:
> $ ps e
> 6851 pts/5    Z+     1:29 [python] <defunct>
> This confuses another library as to whether the processes are
> complete.
> For now I detect which processes are defunct by parsing the output of
> "ps".
> What would you recommend? I am hoping there is a cleaner way.

That's a zombie process, it's finished but the parent hasn't wait()ed
for it yet.


Once the process has ended, call that to get its return value and
clean everything up.


More information about the Python-list mailing list