簡體   English   中英

使用Python運行后台進程

[英]Running a background process with Python

我正在嘗試發送GET請求,但是在開始請求之前,我想捕獲流量。 可以使用以下命令來捕獲流量:

dumpcap -i eth0 -f "udp port 53" -w dns.cap

在后台。 在捕獲數據包的同時,我需要通過發送一些URL發出一些請求。 現在,使用下面的代碼,看來我的捕獲代碼不起作用,甚至在我的文件夾中都看不到dns.cap文件。

有什么問題?

import requests
import os
import subprocess
import urllib
print "start capturing packets...\n"
#os.system("dumpcap -i eth0 -f \"udp port 53\" -w dns.cap"
os.spawnl(os.P_NOWAIT,'dumpcap -i eth0 -f \"udp port 53\" -w dns.cap')
print urllib.urlopen('http://www.google.com').read()
#resp = requests.get('http://httpbin.org')
#resp=requests.get('http://httpbin.org')
print "ok"

os.spanwl被認為是老應改為subprocess.Popen os.spanwnl命令替換os.spanwnl調用:

subprocess.Popen(['/usr/bin/dumpcap', '-i', 'eth0', '-f', 'udp port 53', 
                  '-w', '/tmp/dns.cap'])

最好在啟動轉儲后添加一些暫停(睡眠),以確保在發出請求時已建立捕獲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM