Zombie process is already in killed state. Use ps -l to see the listing of processes in current context and column PPID list the parent process id.
Bijoy _____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rahul Sent: Wednesday, November 24, 2004 4:02 PM To: This List discusses GNU/Linux & GNU,GPL Software Subject: [Mailinglist] Kill Zombie process Help Increasing priority didn't work . Is there any way I can find out the parent process (if exist) , How to kill that . On Mon, 22 Nov 2004 MBalakrishna Pillai wrote : >hi rahul > >try increasing the priority > >kill -9 PID > > >With regards >M.Balakrishna Pillai > > >_______________________________________________ >Mailinglist mailing list >[email protected] >http://mail.ilug-cochin.org/mailman/listinfo/mailinglist_ilug-cochin.org <http://clients.rediff.com/signature/track_sig.asp> -------------- next part -------------- An HTML attachment was scrubbed... URL: /pipermail/mailinglist_ilug-cochin.org/attachments/20041125/e717e0ef/attachment.htm From [EMAIL PROTECTED] Thu Nov 25 10:50:19 2004 From: [EMAIL PROTECTED] (Shyam Kumar) Date: Thu Nov 25 11:01:17 2004 Subject: [Mailinglist] Kill Zombie process Help In-Reply-To: <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> On Wed, Nov 24, 2004 at 10:32:22AM -0000, Rahul wrote: > Increasing priority didn't work . Is there any way I can find out > the parent process (if exist) , How to kill that . > On Mon, 22 Nov 2004 MBalakrishna Pillai wrote : > >try increasing the priority > > > >kill -9 PID Dear Group, Let me share some details about the topic. command Kill means send a "signal" to a process please note the Signal When we write kill -9 PID, that means Sending the signal 9 to the corresponding PID, that is suppose to be received. The signals are fully dependant on the System design Standards. Linux currently support the following Signals,as per listed in nice table. 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX So in the above command Kill -9,means we are actually sending SIGKILL signal to the corresponding pid(Process id,since kernel interpert every process by an uniq integer value), and not any prority level. About SIGKILL:This is mainly for Termination.POSIX.1,SVR4,4.3BSD support SIGKILL.but ANSI C wont. for more information on signals please do refer the man pages. $man 7 signal About Program Termination. ------------------------- Here the context is Zombie process. So let me have some ideas about Process termination. Here I am not refering about fork(). There are three ways for a process to get teminated. 1)Normal Termination. -------------------- a)Getting a return from the main(), is it equivalent to call exit. b)In ANSI C calling exit via atexit,since ANSI does not deals with file descriptors,multiple process and job control. c)or by _exit POSIX standard. 2)Abnormal Termination. ---------------------- a)calling abort. b)The process can generate signals itself or by the kernel,because of some vital error in programs. Note: Here the parent of the process can obtain the termination status form either wait() or waitpid(). 3)Ways of Abnormal Termination. ----------------------------- As we know,every child process has a parent if fork() is called. So in returning a termination status we can have 2 possible of abnormal termination. It is either by a)If parent process is terminated before child. Here init become the parent process of any process whose parent terminates.What happens is that the kernel goes through all active process to see ifthe terminating process is the parent of any process still exists. If so the parent process ID id of the still existing process is changed to 1,ie the process id of init. Thus making every process has a parent. b)Child terminates before parent. Please note here we are discussing abnormal termination. If a child completely disappears, the parent wont able to fetch its termination status.Here the kernel has to keep certain amount of information from every terminating process,so that the information is available when the parent of the terminating process calls wait() or waitpid().The information comprising of Process ID,termination status of the process,the amount of CPU time taken by the process. The Kernel can discard all the memory used by the process and close all open files.Here the process who is terminated but whose parent has not yet waited for it is called a zombie process. ps command show is as 'Z'. So last scenario. What happens when a process that has been inheritedby init terminates? does it becomes Zombie? "NO" Because init is written in so that whateverone of its children terminated init calls one of the wait function to fetch the termination status. by doing this init prevents the system from being clogged by zombies. When we say one of inits children we mean either a process that init directly generates or a process whose parent has terminated and has been inherited by init. I think the picture is clear now. Please do correct me if I made a wrong interpretations. -- Rgds $hyam "Tomorrow do thy worst, I have lived today." (_) ~$~ ~
