March 6, 2019
March 6, 2019
Tasks in Linux are called processes. Every process has a unique process ID. To terminate one in Linux we can use the kill command. In this tutorial, we’ll show you how to kill a process in Linux, to improve your VPS management skills.
Sometimes, you might start a server or an application, forget about it, and need to shut it off. In such scenarios, we can use the kill command.
Below are a few examples where the kill command can be helpful:
Apart from stopping a process, the kill command can provide several features. Like, send a signal to a process. By default, this is taken as a TERM signal which will terminate the process.
Kill commands lets you terminate a process by using a specific process ID, also known as a pid. To show a pid in Linux you can execute the following command:
This will list all the available processes with a pid. If you want to make your list more specific – add a grep command like this:
ps -ux | grep java
This will display all java processes running in the output.
There are multiple signals available in Linux which can be used to interrupt, terminate, or pause processes. The command can be used as below:
This command will display a manual page entry of the different kill signals with their names and corresponding numbers. While there are multiple signals available, in most cases we would use SIGKILL (9) and SIGTERM (15).
Now we’re ready to move on and learn all the different uses of the Kill Command. To follow along, access your VPS server using SSH.
To kill a specific process with a PID use the following command:
Here 63772 is the pid for a process we want to terminate. Since no signal is specified this will be SIGTERM signal. Sometimes, this may not work; in that case, you may have to kill a process forcefully.
In such cases, you can use the command format as shown below:
kill [Signal_or_Option] pid
Below is a sample command to forcefully kill the process:
kill SIGKILL 63772
Similarly, to kill using the shorter option you can use:
kill -9 63772
Replace 63772 with the relevant pid for the process to be terminated.
With the same command, you can kill multiple processes. The syntax for this command would be:
kill -9 pid1 pid2 pid3
Here’s an example showing how it would look in the real world:
kill -9 63772 45116 23465
Pkill is a flavor of the kill command where you can specify the process name or a pattern to find a process:
The above command will kill the chrome browser. You can also specify a partial name match in the command line such as:
However, this command carries a risk of sometimes killing the wrong process, especially when there are multiple processes with the same name.
You can check the list by using the complete process name:
The above command can be used when you know the complete name of the process.
You can check for matching processes by using a partial name:
pgrep -l chr
This command will list the process with the corresponding process ID.
The basic difference between killall and kill is that killall can terminate the process by name while the kill command uses the pid.
An example of such command is:
This is similar to pkill. However, killall does an exact name match, while pkill can do a pattern match. This is one of the reasons, killall is safer compared to pkill.
One more difference is the root package to which these commands belong. In Linux, killall belongs to the psmisc package. On the other hand, commands such as ps, top, kill, pkill belong to procps package.
Another difference is that killall can be customized to terminate processes based on timestamps. In case you want to kill a process that has been running for less than 40 minutes, then you can use:
killall -y 40m [Process_Name>]
You can similarly use the below options together with the killall command:
This covers the most important and useful kill commands. To further learn about this essential utility you can refer to the Linux manual. Good luck with your project, see you in the next tutorial!