I have long been frustrated by the Unix concept of orphan processes, for all the reasons mentioned here.
If I were redesigning Unix, I would just say that a process cannot exit as long as it has children, and there would be two forms of exit(): kill all my children and exit, and exit as soon as my children are all gone. And when a signal kills a process, it kills all its children as well.
Furthermore, rlimits would be extended to cover all of a process' descendants as well, and be refreshable over time. Goodbye, fork bomb.
There are probably applications somewhere that create a neverending chain of forks, but I don't know how important that is.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds