Avoiding defunct processes
Chris Angelico
rosuav at gmail.com
Thu Nov 1 22:36:40 EDT 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.
http://docs.python.org/3.3/library/subprocess.html#subprocess.Popen.wait
Once the process has ended, call that to get its return value and
clean everything up.
ChrisA
More information about the Python-list
mailing list