That's certainly a good approach that gets me 90% of what I want. I'd still like to know whether the parent can handle signals for its children. It would also be nice to get more specific information than just system(foo) != 0; it would be nice to know that system() died when it handled a SIGINT. Is that doable?