in reply to Preforked children not killed when parent is killed
You need to handle the TERM signal, which is what kill sends by default.
In your handler you should either relay the TERM signal and then wait for your children to shutdown. Or send them the KILL signal to bring them down NOW.
IIRC you can relay signals easier by becoming the head of a process group containing you and your children then recieve the signal and relay it to -$$ to send it to your process group.
Moral of the story is handle TERM and send it to your kids.