Can't ignore signal CHLD, forcing to default

From: Steve Bremer (steveb@private)
Date: Wed Jan 22 2003 - 08:03:25 PST


Hi,
	I have a perl script that runs each night that checks various 
things on the system (dropped packets, file system sizes, etc).  The 
job runs from root's cron like this:

00 01 * * * /sbin/system_check.pl

Each time it runs, I also receive the message: 

Can't ignore signal CHLD, forcing to default

After googling a bit, I found this:

Can't ignore signal CHLD, forcing to default
    (W signal) Perl has detected that it is being run with the SIGCHLD 
signal (sometimes known as SIGCLD) disabled. Since disabling this 
signal will interfere with proper determination of exit status of child 
processes, Perl has reset the signal to its default value. This 
situation typically indicates that the parent program under which Perl 
may be running (e.g. cron) is being very careless.

(see http://aspn.activestate.com/ASPN/Reference/Products/ActivePerl/lib/Pod/perldiag.html)

I also found this post regarding the same issue in NetBSD:

http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=11778

The patch to OpenBSD listed in the post looks like it would apply 
cleanly to the version of cron provided with Owl.  However, after 
looking at the source code, it looks to me like there is a reason that 
SIG_IGN was used instead of SIG_DFL when USE_SIGCHLD is 
defined.  I'm not really a C or systems programmer, so I'm not really 
sure.

It's not a big problem, as the script appears to run just fine.  I'm just 
trying to avoid an extra e-mail from each machine every day. And, I 
would prefer not to redirect stderr to /dev/null in case there is a real 
error.  Has anyone else had this problem? 

Thanks,
Steve Bremer
NEBCO, Inc.



This archive was generated by hypermail 2.1.3 : Sun Jan 15 2006 - 13:43:18 PST