Instead of ignoring SIG_CHLD, reap zombies in the signal handler.