[ale] Boot script becomes a zombie?

Brandon Checketts brandon at brandonchecketts.com
Mon Feb 22 15:06:02 EST 2010


Conceptually, you should be able to send a SIGCHLD signal to the parent process
to tell it to clean up (ie: call wait()) after its children.  In reality, I have
no idea if that actually works.

kill -15 {parent PID}

Thanks,
Brandon Checketts



Lightner, Jeff wrote:
> In that situation sometimes (though not always) killing the parent will
> get rid of the zombie.
> 
> As an HP presenter used to say at the start of his performance
> presentations:
> You can't kill a zombie because IT'S ALREADY DEAD!
> 
> -----Original Message-----
> From: ale-bounces at ale.org [mailto:ale-bounces at ale.org] On Behalf Of
> Michael H. Warfield
> Sent: Monday, February 22, 2010 2:29 PM
> To: Atlanta Linux Enthusiasts - Yes! We run Linux!
> Cc: mhw at wittsend.com
> Subject: Re: [ale] Boot script becomes a zombie?
> 
> On Sun, 2010-02-21 at 23:05 -0500, James Sumners wrote: 
>> I have a script that looks runs several other scripts in turn. I use
>> this script to startup several FastCGI processes. This is the script:
> 
>> ##########
>> #!/bin/bash
>> find /var/www/fastcgi/scripts/ -type f -execdir '{}' 2>&1 1>/dev/null
> \;
>> return $?
>> ##########
> 
>> I then have the following crontab entry for root:
>> @reboot /path/to/boot_cgi_bin.sh
> 
>> Every time I reboot my server, this boot_cgi_bin.sh script turns into
>> a zombie (the cgi bins do get started). Does anyone see a reason why
>> this script would hang up as a zombie process?
> 
> A zombie process means that process terminated but the process (which
> would seem to be cron in this case) which started it has not reaped the
> child's status.  It's really all gone and only exists as an entry in the
> proc table.  This CAN happen if a child it invokes leaves it's file
> descriptors open and they're pipes back to the parent (it's what causes
> ssh to refuse to terminate after running a script which restarts
> services.).  I had to deal with that in the smbmount program when I was
> maintaining it.
> 
> Do a ps -lp {process id} on that process id and then see what the parent
> process is (may be a shell).
> 
> Might also redirect stdin from /dev/null just in case one of those
> scripts you're invoking is doing something funny with stdin.
> 
> Mike


More information about the Ale mailing list