subprocess leaves child living

Stefan Sonnenberg-Carstens stefan.sonnenberg at pythonmeister.com
Tue Jun 5 08:07:44 EDT 2007


Thomas Dybdahl Ahle schrieb:
> Hi, When I do a small program like
>
> from subprocess import Popen
> popen = Popen(["ping", "google.com"])
> from time import sleep
> sleep(100)
>
> start it and kill it, the ping process lives on.
> Is there a way to ensure that the ping process is always killed when the 
> python process is?
> I can't use atexit, as ping then isn't killed when python is killed "in 
> the hard way"
>   
Calling popen.close() perhaps ?
You basically open a pipe, which spawns a shell and the command is then
started in there.
So, if your program quits, the spawned shell is still alive, only the 
pipe is dead.



More information about the Python-list mailing list