Ok, I learned something else ...

When I type:

kill -9 <SOME_PROCESS_ID>

on the command line, It's not actually killing the process.

Let me explain.  My script starts 3 others and then stays around
watching them.  So, when I run it, I get this:
# ps -ef  | grep dummy
user1 18000 1  0 10:04:22 ?    0:00 dummy_monitor
user1 18001 18000 0 10:04:22 ?   0:00 dummy1
user1 18002 18000 0 10:04:22 ?   0:00 dummy2
user1 18003 18000 0 10:04:22 ?   0:00 dummy3

(the names have been changed to protect the innocent!)

Now ... After I run a kill:

# kill -9 18002
# ps -ef | grep dummy
user1 18000 1  0 10:04:22 ?    0:00 dummy_monitor
user1 18001 18000 0 10:04:22 ?   0:00 dummy1
user1 18003 18000 0 10:04:22 ?   0:00 dummy3

However, I just discovered that if I check the PID instead:

# ps -ef | grep 18002
user1 180002 18000  0                   0:00 <defunct>

See that "<defunct>"?!  How did my process get a <defunct> status?  Is
that a Solaris-fancy way of saying "zombie-child"?  The above explains
why my (kill 0 => $pid) isn't working the way I expect, but How can I
kill the kid.  The <defunct> child process finally dies if I kill the
parent (original dummy_monitor) script.  Does this mean that my setsid
line in my original script is not working correctly?  I'm confused
here.

--Errin

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to