0

我需要运行tcpdump,稍后将其杀死并从 stderr 读取。以下代码在Python 2.7中工作,但我也需要使其在Python 2.5中工作::

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抱怨说:

tcpdumpProcess.terminate() AttributeError: 'Popen' 对象没有属性 ' terminate '

在 Python 2.5 中等效的方法是什么?

4

2 回答 2

1

您可以像执行上一个命令一样执行 Kill 命令和 processid。

或者

您可以使用 os 模块中提供的 kill 方法以及进程 ID 和信号状态,例如 TERM 等。

于 2013-10-14T09:38:06.657 回答
1

您可以使用 os.kill 方法终止进程。

os.kill(tcpdumpProcess.pid, signal.SIGTERM)
于 2013-10-14T09:31:53.890 回答