os.fork on linux defunct
Ray
rui.vapps at gmail.com
Fri Jul 30 18:09:28 EDT 2010
On Jul 30, 6:03 pm, Ray <rui.va... at gmail.com> wrote:
> I'm running python 2.4 on linux. I use python os.fork run tcpdump, but
> after I kill the forked process (tcpdump) in linux it shows defunct
>
> here is the code:
>
> #!/usr/bin/python
> import time, os
> class Test:
> def fork(self):
> self.pid=os.fork()
> if self.pid=0:
> args=['tcpdump', '-i', 'eth0', 'port', '80' '']
> os.execl("/usr/sbin/tcpdump", *args)
> os._exit(0)
> def kill(self):
> os.kill(self.pid, 15)
> if __name__=='__main__':
> while True:
> test=Test()
> test.fork()
> time.sleep(2)
> test.kill()
> time.sleep(30)
>
> after I call kill() it will kill tcpdump (capture will stop) but on
> linux, ps shows tcpdump as defunct process
> what am I missing?
>
> thanks for any help.
I think I found it. need to call os.wait()
More information about the Python-list
mailing list