use Carp;
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
use IO::FDPass;
-use POSIX qw(_exit setsid :sys_wait_h :errno_h);
+use POSIX qw(_exit setsid :sys_wait_h :errno_h :signal_h);
use Sys::Syslog qw(openlog syslog LOG_INFO LOG_ERR LOG_WARNING);
our $logger;
my $got = waitpid -1, ($full ? 0 : WNOHANG);
$got >= 0 or fail_log("failed to wait for monitor(s): $!");
if ($got) {
- if ($?) {
+ if ($? && $? != SIGPIPE) {
syslog(LOG_WARNING,
"$0 prefork [$$]: monitor process [$got] failed with wait status $?");
}