Orphan process
From Wikipedia, the free encyclopedia
An orphan process is a computer process whose parent process has finished or terminated.
A process can become orphaned during remote invocation when the client process crashes after making a request of the server.
Orphans waste server resources and can potentially leave a server in trouble. However there are several solutions to the orphan process problem:
- Extermination is the most commonly used technique; in this case the orphan is killed.
- Reincarnation is a technique in which machines periodically try to locate the parents of any remote computations; at which point orphaned processes are killed.
- Expiration is a technique where each process is allotted a certain amount of time to finish before being killed. If need be a process may "ask" for more time to finish before the allotted time expires.
A process can also be orphaned running on the same machine as its parent process. In a Unix-like operating system any orphaned process will be immediately adopted by the special init system process. This operation is called re-parenting and occurs automatically. Even though technically the process has the "init" process as its parent, it is still called an orphan process since the process which originally created it no longer exists.