To close all subprocesses in Python, use the subprocess.Popen() function. The subprocess.Popen() is a built-in Python function that executes a child program in a new process.
import os
import subprocess
import signal
p1 = subprocess.Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=subprocess.PIPE,
shell=True, preexec_fn=os.setsid)
os.killpg(os.getpgid(p1.pid), signal.SIGTERM)
In this example, we saw how to kill all the subprocesses using the killpg command. The killpg() method send the signal to all the process group to terminate the process. Among all these commands, killpg is the method used to kill all the subprocesses. We can also use for loop to kill all the processes by using the kill() method or terminate() method.
What is a subprocess in Python
The subprocess is a built-in Python module that can be used to create a subprocess using two methods in which, one is using the run() method and another using the Popen() method.
How to create subprocess in Python
To create a subprocess in Python, use the run() method. The run() command is described by args. It waits for the command to complete, then returns a CompletedProcess instance.
import subprocess
subprocess.run(‘dir’,shell=True)
You can also use the Popen() method to create a subprocess in Python.
import subprocess
subprocess.Popen([“echo”,”hello”])
Many arguments can be passed inside the Popen() method. The Popen() function is similar to the open() function we use to open the file using the os module. This can be used to open other programming language files also. The file is opened, and the output can be generated using this Popen() method.
How to close a single subprocess in Python
To close a single subprocess in Python, use the kill() method. The kill() is a built-in method used for terminating a single subprocess. The kill() command keeps running in the background.
import subprocess
p1 = subprocess.Popen("exec "+ "clear", stdout=subprocess.PIPE, shell=True)
p1.kill()
print("The cmd is close")
Output
The cmd is close
You can see that the kill() method terminates the single subprocess.
Kill single subprocess using terminate() method.
To kill a single subprocess in Python, use the subprocess.terminate() method. The subprocess.terminate() is a built-in Python method used to close the single process created by the user.
import subprocess
p1 = subprocess.Popen(["echo", "hello"])
p1.terminate()
print("No output from echo")
Output
No output from echo
Now, let us see an example for closing the firefox browser from the terminal:
import os
import signal
process_name = input("Enter the process name: ")
try:
for f in os.Popen("ps ax | grep ” + name + “ | grep –v grep "):
line = f.split()
id = line[0]
os.kill(int(id), signal.SIGKILL)
print(" process is killed ")
except:
print(" Error ")
In this example, if we give the process name as firefox, all the instances of the firefox will be killed. This example shows how to kill the process by using the process name.
That’s how you close all subprocesses in the Python tutorial.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has experience with various programming languages and technologies, including PHP, Python, and JavaScript. He is comfortable working in front-end and back-end development.
may I have a related question please?
let’s have in “myprog.py” line:
p1 = subprocess.Popen([“Notepad.exe”, “myfile.txt”])
is it possible somehow pause python executing until Notepad is closed,
then to kill the subprocess and continue with reading
newly edited “myfile.txt” in “myprog.py”?
thank you for the advice