subprocess leaves child living

Thomas Dybdahl Ahle lobais at gmail.com
Tue Jun 5 09:15:42 EDT 2007


Den Tue, 05 Jun 2007 14:07:44 +0200 skrev Stefan Sonnenberg-Carstens:

> 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.

Problem is - I can't do that when I get killed.
Isn't it possible to open processes in such a way like terminals? If I 
kill the terminal, everything open in it will die too.



More information about the Python-list mailing list