Any way to find out what a defunct process USED to be?

Any way to find out what a defunct process USED to be?

Post by Mitch Gorm » Mon, 06 Apr 1992 02:56:22



        I just rebooted one of my rs6k machines.  When I logged in, I found
a whole slew (actually, 9) defunct processes.  No-one else is on the machine,
nor has been on it since I rebooted.  So where the hell are these puppies
coming from?  (IBM, of course!  ;)

        Anyway, the question is, is there anyway to get the former-process's
name out of the process table?  I am _not_ a kernel hacker, so I wouldn't
even know where to begin.  Anyone out there ever tried to dig up this info?

        TIA.
--
Mitch                                           "If I had my way, I'd just walk



 
 
 

Any way to find out what a defunct process USED to be?

Post by Barry Margol » Mon, 06 Apr 1992 07:38:14


I don't think there's a way to find out the name of the defunct process
itself.  The process's memory has been discarded by the time it becomes a
zombie; it only exists so that a process table entry can be maintained (to
hold its resource usage statistics, for instance).

I usually find it sufficient to use the PPID to find the parent process.
Knowing what process created the zombie is usually enough, since that's the
actual culprit (the problem is that the parent process isn't calling
wait(2)).

--
Barry Margolin
System Manager, Thinking Machines Corp.



 
 
 

Any way to find out what a defunct process USED to be?

Post by Dan Ellis » Tue, 14 Apr 1992 20:42:38



Quote:>I don't think there's a way to find out the name of the defunct process
>itself.  The process's memory has been discarded by the time it becomes a
>zombie; it only exists so that a process table entry can be maintained (to
>hold its resource usage statistics, for instance).
>I usually find it sufficient to use the PPID to find the parent process.
>Knowing what process created the zombie is usually enough, since that's the
>actual culprit (the problem is that the parent process isn't calling
>wait(2)).

OR, you may have spawned several children counting on a signal(SIGCHLD, handler)
call to take care of the wiat/wiat3.  THis is the case in the lpd code for
example.  But, once the SIGCHLD signal is received from the first child
the signal mask is set to disallow additional signal catching until the
wait call is finished.  During this time the other children also raise
the SIGCHLD signal but these signals cannot be caught and then go zombie.
Under SCO UNIX (at least) this race condition can be prevented by using
the signal(SIGCHLD, SIG_IGN) to guarantee the children will die a
graceful death and not go zombie.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Dan Ellison, Network Admin      -     Molecular Science Program SIU-C |
| Southern Illinois University    -     Carbondale, IL 62901            |  
| FAX:      (618) 453-3459        -     PHONE:    (618) 453-7310        |    

 
 
 

1. ANSWER FOUND - forked processes become <defunct>

Thanks to all who replied to my question (including one flame). There
were too many indivivuals who replied and I did not have time to thanks
all of you individually.

Thanks again to all of you who replied.
--
-------------------------------------------------------------------------------
Hemant Shah                            | All the opinions expressed are my own
Fermi National Accelerator Laboratory  | and does not necessarily reflect
Systems Integration Group              | those of Fermilab.

 Voice : (708) 840-8071                | I haven't lost my mind
   Fax : (708) 840-2783                | it's backed on tape somewhere.
-------------------------------------------------------------------------------

2. difference between set and setenv?

3. how to find cause for <defunct> processes

4. OpenLDAP config problem

5. getting <defunct> process when using sed

6. How to find out the speed of cpu, CD-ROM type and speed, disk type and capacity, cache type and capacity, video card type, etc.

7. getting defunct process when using sed

8. x86 Solaris 8 network setup

9. Why <defunct> process after leaving a fork()ed process?

10. Using PS to find a process and then restarting if not found (HELP)

11. Tee hangs if earlier process in pipeline creates defunct child process.

12. Need to find which version I am using for XFree86.

13. How do I find out what version of the C compiler I am using?