![]() ![]() When a process loses its parent, init becomes its new parent. If the parent process still refuses to reap the zombie, and if it would be fine to terminate the parent process, the next step can be to remove the parent process. To remove zombies from a system, the SIGCHLD signal can be sent to the parent manually, using the kill command. ![]() The result is that a process that is both a zombie and an orphan will be reaped automatically. When orphan processes die, they do not remain as zombie processes instead, they are waited on by init. When the parent dies, the orphaned child process is adopted by init (process ID 1). Zombie processes should not be confused with orphan processes: an orphan process is a process that is still executing, but whose parent has died. Also, unlike normal processes, the kill command has no effect on a zombie process. ![]() In the term’s metaphor, the child process has “died” but has not yet been “reaped”. The term zombie process derives from the common definition of zombie - an undead person. In most cases, under normal system operation zombies are immediately waited on by their parent and then reaped by the system – processes that stay zombies for a long time are generally an error and cause a resource leak. A child process always first becomes a zombie before being removed from the resource table. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |