Killing a process created with Python’s subprocess.Popen() [duplicate]

Posted on

Question :

Killing a process created with Python’s subprocess.Popen() [duplicate]

Here is my thought:

First of all, I created a process by using subprocess.Popen

Second, after certain amount of time, I tried to kill it by Popen.kill()

import subprocess
import os, signal
import time

proc1 = subprocess.Popen("kvm -hda /path/xp.img", shell = True)
print 'proc1 = ',

However, “proc1” still exists after Popen.kill().
Could any experts tell me how to solve this issue?
I appreciate your considerations.

Thanks to the comments from all experts, I did all you recommended, but result still remains the same.

proc1.kill() #it sill cannot kill the proc1

os.kill(, signal.SIGKILL) # either cannot kill the proc1

Thank you all the same.

And I am still waiting for your precious experience on solving this delicate issue.

Answer #1:

In your code it should be


Both kill or terminate are methods of the Popen object which sends the signal signal.SIGKILL to the process.

Answered By: pyfunc

Answer #2:

process.terminate() doesn’t work when using shell=True. This answer will help you.

Answered By: metanoia5

Answer #3:

Only use Popen kill method

process = subprocess.Popen(

Answer #4:

How about using os.kill? See the docs here:

Answered By: Michael Patterson

Leave a Reply

Your email address will not be published. Required fields are marked *