Ich habe einen Python-Skript Netzwerkverkehr mit tcpdumb in einem Teilprozess zu erfassen:Python mit tcpdump in einem Subprozess: Wie Subprozess richtig zu schließen?
p = subprocess.Popen(['tcpdump', '-I', '-i', 'en1',
'-w', 'cap.pcap'], stdout=subprocess.PIPE)
time.sleep(10)
p.kill()
Wenn dieses Skript komplette Arbeit, ich versuche Ausgabe .pcap Datei in Wireshark zu öffnen und immer diese Fehler:
"Die Capture-Datei scheint in der Mitte eines Pakets abgeschnitten worden zu sein."
Welche Lösung könnte für das "richtige" Schließen des tcpdumb-Subprozesses angewendet werden?
'p.wait()' sollte warten, bis der Prozess abgeschlossen ist. Ich denke dann, dass der Prozess "geschlossen" ist? – roganjosh
In meinem Fall ist es "unendlich" Prozess (bis Benutzer oder Timer es nicht schließen) – olptkn
Verwenden Sie 'p.kill()' in Ihrem Programm oder unterbrechen Sie auf andere Weise? – tijko