Question

I need to run tcpdump, kill it after a bit and read from stderr. The following code works in Python 2.7, but I need to make it work in Python 2.5 too::

tcpdumpProcess = subprocess.Popen(['sudo', '/usr/sbin/tcpdump',
                        '-w', 'dumpedTraffic.pcap',
                        '-n', 'ip'],
                        stdout=subprocess.PIPE,
                        stderr=subprocess.PIPE)
tcpdumpProcess.terminate()    
tcpdumpProcess.wait()
tcpdump_stderr =  tcpdumpProcess.communicate()[1]

Python 2.5 complains that:

tcpdumpProcess.terminate() AttributeError: 'Popen' object has no attribute 'terminate'

What's en equivalent way of doing it in Python 2.5?

Était-ce utile?

La solution

You can use os.kill method to terminate the process.

os.kill(tcpdumpProcess.pid, signal.SIGTERM)

Autres conseils

You can execute the Kill command along with processid as same as u execute the previous command.

or

u can use the kill methods provided in the os module along with the process id and the signal status such as TERM etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top