Make the trace-manager double-fork, so it isn't a child process of the top-level process. Arguably better would be to make everything a child of the top process and then implement calls that depend on parenting, like get(p)pid and wait*(), specially. That falls under the "future directions" heading, though.