Killing a process in Linux usually involves using the process ID with the kill command. You can also use the process name with killall command.
This works when you know the process ID or name. But in some cases, you may not know it or you just don't necessarily need to know it.
For example, if you want to kill the processes running on specific ports, you may not need to know the process ID or name at all. You can terminate a process based on the port number it is using.
Let me show you how to do that.
Terminating processes based on their port numbers
fuser command combined with the
-k (kill) option will end all associated processes that are listening on a TCP or UDP port. Simply provide the port number and type (TCP or UDP) in the
For instance, to end a process on UDP port 81, use the
fuser command as:
sudo fuser -k 81/udp
Similarly, use the
fuser command to terminate a process on TCP port 3306:
sudo fuser -k 3306/tcp
You can use the lsof command to verify that processes are no longer running on the target port.
The classic way of killing processes using certain ports
For those who would rather not use
lsof may be used to determine which processes are using a certain port and then use this information with the kill command.
As an instance, to kill all the process running on TCP port 3306, use the below command to detect the process id:
sudo lsof -i TCP:3306
And now kill it with its pid:
kill -9 <pid_value>
One thing to note here is that certain processes like
apache2 might restart after you have killed them using the above commands. Even if you use the
killall command, they will still appear after some time.
In such cases, I advise you to use application specific commands to stop a service. For example, to kill the Apache process on Ubuntu, use the command:
sudo systemctl stop apache2
This will completely kill the particular process.
This article covered how to terminate a process running on a specific port. With the fuser command, you don't need to know the process details. Otherwise, the classic method of getting the process ID associated with port first and then killing it works as well.