04-25-2002
zombie
i found a better explianation from
http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC13
*****************
When a program forks and the child finishes before the parent, the kernel still keeps some of its information about the child in case the parent might need it -- for example, the parent may need to check the child's exit status. To be able to get this information, the parent calls wait(); when this happens, the kernel can discard the information.
In the interval between the child terminating and the parent calling wait(), the child is said to be a `zombie'. (If you do `ps', the child will have a `Z' in its status field to indicate this.) Even though it's not running, it's still taking up an entry in the process table. (It consumes no other resources, but some utilities may show bogus figures for e.g. CPU usage; this is because some parts of the process table entry have been overlaid by accounting info to save space.)
*************
regs
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I would like to create a zombie process so that I can test monitoring software functionality. Any techniques? (2 Replies)
Discussion started by: swhitney
2 Replies
2. Programming
hi!
i am writing a c program which has the following structure:
main()
{
child1
child1.1
child2
child2.1
}
the child1.1 and 2.1 are becoming zombies...
how can i handle this...
thanx (1 Reply)
Discussion started by: mridula
1 Replies
3. Linux
Hi
What is the command to find only the zombie processes??
How to write the code in C to fetch the no. of zombie processes??
Thanx (5 Replies)
Discussion started by: jeenat
5 Replies
4. Linux
I have RHES4 machine with VRTSralus - Backup Exec agent installed there and running as a service. The agent hiccups sometimes and turns into defunct state. The problem is that I cannot kill it anyway., it stays there forever until the machine is rebooted. I wonder if anyone had such an experience... (1 Reply)
Discussion started by: will_mike
1 Replies
5. Shell Programming and Scripting
Hi
I need help because I don't know if it is possible to add a find inside a cat.
like I have a file with the pid of the process that use to became zombie. And I have the same pid stored in the var (pid1)
now, I have no clue how to check if the the find finds the pid or even if it's... (2 Replies)
Discussion started by: ruben.rodrigues
2 Replies
6. Solaris
dear friends,
in an interview they asked me what is zombie process. how we can identifying these process.if can you kill all zombie process. (8 Replies)
Discussion started by: sijocg
8 Replies
7. AIX
Is there an equivilant to the preap command in AIX that would allow me to get rid of a zombie process. I am new to AIX, moving over from Solaris and in the past I have been able to preap the pid on the defunct process to clean them up. I have looked around and the best I can see is that it may... (3 Replies)
Discussion started by: sboots
3 Replies
8. Solaris
Dear Bos,
I have one server,everday if I check with command TOP always present zombie,like below:
last pid: 4578; load averages: 0.15, 0.11, 0.13 07:56:15
298 processes: 295 sleeping, 1... (10 Replies)
Discussion started by: fredginting
10 Replies
9. UNIX for Dummies Questions & Answers
Hey guys,
So i did some research on the site but previous posts answered most of my questions about zombie processes but I have one question that didnt seem to get addressed
"how do you find the parent or parent ID of a zombie process so you can kill it?"
I know p -kill doesnt always just... (6 Replies)
Discussion started by: kingpin007
6 Replies
10. UNIX for Advanced & Expert Users
What is the overhead associated with zombie process?Is it running out of process-ID?:confused:
Since some information is stored in process table..
Thanks in Advance (4 Replies)
Discussion started by: jois
4 Replies
FORK(2) System Calls Manual FORK(2)
NAME
fork - create a new process
SYNOPSIS
pid = fork()
int pid;
DESCRIPTION
Fork causes creation of a new process. The new process (child process) is an exact copy of the calling process except for the following:
The child process has a unique process ID.
The child process has a different parent process ID (i.e., the process ID of the parent process).
The child process has its own copy of the parent's descriptors. These descriptors reference the same underlying objects, so that, for
instance, file pointers in file objects are shared between the child and the parent, so that an lseek(2) on a descriptor in the child
process can affect a subsequent read or write by the parent. This descriptor copying is also used by the shell to establish standard
input and output for newly created processes as well as to set up pipes.
The child processes resource utilizations are set to 0; see setrlimit(2).
RETURN VALUE
Upon successful completion, fork returns a value of 0 to the child process and returns the process ID of the child process to the parent
process. Otherwise, a value of -1 is returned to the parent process, no child process is created, and the global variable errno is set to
indicate the error.
ERRORS
Fork will fail and no child process will be created if one or more of the following are true:
[EAGAIN] The system-imposed limit on the total number of processes under execution would be exceeded. This limit is configuration-
dependent.
[EAGAIN] The system-imposed limit MAXUPRC (<sys/param.h>) on the total number of processes under execution by a single user would be
exceeded.
[ENOMEM] There is insufficient swap space for the new process.
SEE ALSO
execve(2), wait(2)
3rd Berkeley Distribution May 22, 1986 FORK(2)