在Python 2.5中执行shell进程

时间:2013-10-14 09:15:49

标签: python shell process command python-2.5

我需要运行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'对象   没有属性“终止

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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