Defunct Processes With subprocess.Popen

Mike Meyer mwm at mired.org
Thu May 12 00:39:03 EDT 2005


John Abel <jabel at plus.net> writes:

> Hi!
>
> I'm currently writing a script which launches external programs, but
> it keeps leaving zombie/defunct processes behind, until I kill the
> launching script, which is a bit of a pain, as it's supposed to be a
> daemon.  The code I'm using is:
>
> newPid = subprocess.Popen( cmdLine[ 1: ], executable=cmdLine[ 0 ],
> close_fds=True ).pid
>
> I've tried calling it using the shell=True flag, but that leaves a
> zombie for the sh, instead.  I'm not interested in any output, the
> only thing I need returning, is the pid of the new process.  I've
> tried using spawn*, with the same results.  Does anyone have any ideas?

The processes are hanging around in a zombie state so the parent (or
someone) can get their exit status.

Try calling os.wait() until it returns the exit status for all the
processes you've started.

          <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list