Search code examples
python-2.7subprocessterminatekill-process

Terminate subprocess in python doesn't work


I want to terminate a subprocess, but it doesn't work. Here's my code:

import os
import subprocess

p = subprocess.Popen(['gnome-terminal','-e','tshark -i eth0 -w /root/Desktop/test.pcap'])
q = subprocess.Popen(['python','avtp2.py'])

if q.wait() == 0:
  p.terminate()

Do you know why?

Greetz


Solution

  • This works:

    import os
    import subprocess
    from subprocess import check_output
    import signal
    
    p = subprocess.Popen(['gnome-terminal','-e','tshark -i eth0 -w /root/Desktop/test.pcap'],shell=False)
    q = subprocess.Popen(['python','avtp2.py'])
    
    if q.wait() == 0:
      p_pid = check_output(["pidof","tshark"]).split()
      os.kill(int(p_pid[0]), signal.SIGINT)