[comp.unix.questions] kill -9 PID fails. why?

shaw@hpihoah.HP.COM (Joy-lim Shaw) (02/02/90)

/ hpihoah:comp.unix.questions / rli@buster.irby.com (Buster Irby) /  8:08 pm  Jan 27, 1990 /
>ric@ace.sri.com (Richard Steinberger) writes:

>>Sometimes I see a user has been logged on several days without doing
>>anything.  ps shows that the process is sleeping, waiting for input.
>>Many times I am unable to kill such a process.  What I have been doing
>>is kill -9 PID, where PID is the user's process ID.  Could someone
>>shed some light on why such processes don't die.  Is there a particular
>>document that I might peruse to understand this situation better?  And
>>if kill -9 doesn't work, do I have any alternatives other than reboot?

How these software  signals work, is that  periodically  a function that
checks  the  signal  queue is run on your  behalf.  This is done,  among
other time, when a process  switches mode (User mode to Kernal mode, and
visa  versa).  So when a process is waiting for a driver, and the driver
is waiting for a hardware signal, it never checks the signal queue until
it  returns  from  the  driver.  In  short,  that  process  is just  not
listening to your signals.

To kill this  process, one usually has to reboot the machine, but if you
know that this  process  is waiting  for a signal for say a tape  drive.
Try putting the tape drive back on line or some other  things to get the
tape  drive to  generate a hardware  signal.  Any signal  will do as the
driver is probably  listening for anything.  But usually  you'll have to
reboot to kill that process.  Of course if the process isn't causing any
problems other then being there, why reboot?  Let it sit there until you
can reboot at a more opertune (sp) time or its next scheduled down time.

For more  information  you can try looking it up in a UNIX kernal  book.
The Bach  book must  have it.  And for more  information  as to when the
signal  queue is checked,  you'll have to check with the folks who wrote
your kernal.

Hope this helps.

shaw

nigel@cmsfl@labtam.oz (Nigel Harwood) (02/15/90)

First of I'm not a guru on this but I have picked up a couple of things
along the way ...

In article <8498@unix.SRI.COM>, ric@ace.sri.com (Richard Steinberger) writes:
> Sometimes I see a user has been logged on several days without doing
> anything.  ps shows that the process is sleeping, waiting for input.

You should try kill -1 PID first.  This is much nicer to the user i.e.
if he/she is in say vi and it gets a -1 signal it will save the edit
session for them.  A -9 will just clobber the process.

> Many times I am unable to kill such a process.  What I have been doing
> is kill -9 PID, where PID is the user's process ID.  Could someone
> shed some light on why such processes don't die.

The ones I have struck which can't be killed I have assumed to be what
are called zombie processes.  Processes whose parent i.e. the shell or
something, have died and they have not for what ever reason.  Perhaps
someone with real knowledge can fill that one in ;-)

> Is there a particular
> document that I might peruse to understand this situation better?  And
> if kill -9 doesn't work, do I have any alternatives other than reboot?

I have had to reboot as well.

> thanks to all who reply.  Apologies if this is frequently dealt with.

Never seen it before in comp.sys.ncr but probably has been beaten to
death in comp.unix.questions etc.

-- 
<<<<<<<<<<<<<<<<<<<<<<<  Nigel Harwood  >>>>>>>>>>>>>>>>>>>>>>>>>
<< Post:  Coles Myer Ltd, PO Box 2000 Tooronga 3146, Australia >>
<< Phone: +61 3 829 6090      E-mail: nigel%cmsfl@labtam.oz.au >>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>