Found a stubborn background process eating up system resources?
You can kill it using the kill command š
But how do you use the kill command? Well, in this tutorial, I will walk you through the essentials needed to learn how to use the kill command:
- The basic syntax and popular flags of the kill command
- Practical examples of the kill command
- Practice questions to get better at using the kill command
Here’s How to use the Kill command
To use the kill command to its full potential, it is important to know its syntax, so here’s a basic syntax of the kill command:
kill [options] <PID>
Here,
[options]
: it is used to fine-tune the behavior of the command as per your needs, such as you can use the-s
option to specify a kill signal.<PID>
: here’s where you specify the process ID of a target process to kill.
Now, let’s take a look at the list of the options available to you:
Option | Description |
---|---|
-s |
Specify what kill signal to send. |
-l |
Shows the name of the signal through the signal number. |
-L |
List all the available signals. |
q |
Sends the signal using sigqueue(3) instead of kill(2), allowing an additional integer value to be sent along with the signal. |
The key option here is the -s
flag, as you will mostly be using the kill command with specific kill signals in mind.
So here’s a list of common signals used with the kill command:
Signal Number | Signal Name | Description |
---|---|---|
1 |
SIGHUP | Re-read configuration (like reloading web server settings). |
2 |
SIGINT | Interrupt the process, similar to pressing Ctrl+C . |
3 |
SIGQUIT | Quit and create a core dump (for debugging crashes). |
9 |
SIGKILL | Forcefully terminate immediately (use with caution!). |
15 |
SIGTERM | Politely request termination, allowing for cleanup (default). |
If you don’t specify any signal number, it will use SIGTERM
by default.
Now, let’s take a look at some practical examples of the kill command.
Practical examples of the kill command
In this section, I walk you through practical examples of the command, so you can have a better idea of how to use the kill command on Linux:
1. List available signals
To list available signals, all you have to do is use the -L
flag with the kill command, as shown here:
kill -L
As you can see, the above response repeats the termination signals. So how do you get the list of every signal available without repetition?
Easy, you can use the standalone version of the kill command by executing in the following manner:
/usr/bin/kill -L
2. Kill a process using the kill command
To kill a process, you require a PID (Process ID) to specify the target process. To find the PID of a process, you can use the pidof command as shown here:
pidof <process_name>
For example, if I want to find the PID of the Firefox browser, then I use the following:
pidof firefox-bin
Once you have a PID, you can use the following command:
kill <PID>
As I mentioned earlier, if you don’t pass any termination signal, it will use SIGTERM
, enough to kill most processes.
If the process is super stubborn (and has numerous child processes associated with it) and does not go away by the default signal, then you can use the SIGKILL
.
š§
The SIGKILL
signal kills the child processes as well so use it with caution ā ļø.
Here’s how you can use SIGKILL
to kill a stubborn process:
kill -9 <PID>
For example, the Spotify client was unresponsive and wasn’t working as expected, so here’s how I used SIGKILL to kill Spotify:
kill -9 13234
Here, the 13234
is the PID of the Spotify desktop.
If you’re curious to learn the difference between SIGTERM (default) and SIGKILL then you can refer to our detailed guide on that matter:
3. Kill multiple processes at once
To kill multiple processes, all you have to do is append multiple PIDs to the kill command separated by spaces:
kill [options] PID1 PID2 PID3 PIDN
For example, here, I used the PID of Firefox and Spotify to kill both of them at once:
kill 10793 9758
4. Find the name of the signal through the number
Typically, you will stumble upon a number instead of the name of the kill signal, and you might want to know what signal was used there.
For that purpose, you can use the -l
flag appending the number of the signal as shown here:
kill -l <Signal_number>
For example, if I want to know what is the name of the termination signal 9, then I will use the following:
kill -l 9
If you notice the above output, then you realize that it only printed the KILL
instead of SIGKILL
.
Why do you ask? Well, it won’t add SIG
before the name of any termination signal.
Suggested Read š
Practice questions šļø
You must practice the commands to get better at them, and quickly use them when needed in day to day life.
So here I’ll be sharing some practice questions for the kill command:
- Find the PID of your default browser and then kill it using the SIGKILL.
- How can you hold the process instead of killing it?
- What is an interactive way of sending kill signals (Hint: you can use htop)
- What is a zombie process and how to kill it? (Hint: guide to zombie process)
If you discover any difficulties solving the above problems, reach out to us through the comments or post your query in our community forum.
Explore How You Can Use Different Kill Signals
If you are curious to learn the meaning of different kill signals, refer to our detailed guide on using different termination signals on Linux:
Moreover, if you are new to Linux, I suggest you to also go through our command tutorial for beginners.
š¬ How often do you find yourself using the kill command? Or do you prefer the GUI?