I see one potential issue with this. If the original process goes away, the fork is reparented to init, meaning getppid() returns 1 from then on. I don't think there's much that can be done about that, though.