subprocess leaves child living

Michael Bentley michael at jedimindworks.com
Tue Jun 5 16:46:39 EDT 2007


On Jun 5, 2007, at 3:01 PM, Rob Wolfe wrote:

> Thomas Dybdahl Ahle <lobais at gmail.com> writes:
>
>> But you can't ever catch sigkill.
>
> There is no protection against sigkill.
>
>> Isn't there a way to make sure the os kills the childprocess when the
>> parrent dies?
>
> If the parent dies suddenly without any notification childprocesses
> become zombies and there is no way to avoid that.

Apologies for picking nits...

But actually *that* is an orphan process.  When a parent process dies  
and the child continues to run, the child becomes an orphan and is  
adopted by init.  Orphan processes can be cleaned up on most Unices  
with 'init q' (or something very similar).

Zombies on the other hand, are those processes that have completed  
execution but still have an entry in the process table.  The cause of  
zombies AFAIK, is a parent that has failed to call wait(2).  To clean  
up zombies, you can send a SIGCHLD signal to the parent process --  
probably with 'kill -17' (but use 'kill -l' to find out what it is on  
your system).

hth,
Michael
---
"I would rather use Java than Perl. And I'd rather be eaten by a  
crocodile than use Java." — Trouser





More information about the Python-list mailing list