At any given moment your Linux system is running multiple processes simultaneously. Some of these processes have access to your network if they are being used to upload or download data. These processes typically bind themselves to a particular port number, and this can allow us to kill the process based on a port number.
The kill command is one way that system administrators can stop a process from running. However, the kill
command only accepts a process ID as an argument. The pkill
and killall
commands are two more options, but these accept process names as arguments.
In order to kill a process based on its port number, we will need to use the fuser
command, or use other command line tools in conjunction with the usual kill
command. In this tutorial, we will show you multiple ways to kill a process based on its port number in Linux.
In this tutorial you will learn:
- How to kill a process on a TCP or UDP port with
fuser
- How to kill a process on an SCTP port with
kill
- How to view what process a port is using with
ss
andlsof
- How to bind a process to a port using
socat
for testing purposes

Category | Requirements, Conventions or Software Version Used |
---|---|
System | Any Linux distro |
Software | fuser, kill, lsof, ss, xargs, socat |
Other | Privileged access to your Linux system as root or via the sudo command. |
Conventions |
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command$ – requires given linux commands to be executed as a regular non-privileged user |
How to view which process is using a certain port
As mentioned earlier, a process listening for incoming connections is going to bind itself to a port. Most processes will always use the same port, unless they have been configured to use a non-default one. For example, SSH uses port 22, HTTP uses port 80, and MySQL uses port 3306, etc. With this knowledge, we are able to figure out which port a service is operating on.
lsof command
To see a list of which ports are being used on our system, the lsof
command comes in handy. For example, the following command will list information about which process or processes are utilizing TCP port 80.
$ sudo lsof -i TCP:80
Along with other information, the lsof
command gives us the process ID of the processes utilizing the specified port. It will also work on UDP ports. To see more information about how to use lsof, check out our tutorial on Guide to lsof Linux command with examples.
ss command
Another command that can be used to see which processes are using a particular port is the ss
command. Some users may prefer it over lsof
, but personally we find lsof
a bit easier to use for this situation. However, ss
is able to list processes that are using other protocols, such as SCTP ports.
$ ss -Slp
The output from the command above will show all processes and ports being used with SCTP. To see more information about how to use ss, check out our tutorial on Using ss command on Linux.
Using these two tools will help us to determine which process ID is running on a certain port, and will also come in handy to pass those process IDs over to the kill
command in some of the following examples.
Bind a process to a port with socat
In order to make testing the below commands easier, we can use the socat
command to create a dummy process that binds itself to a port of our choosing.
- Bind a process to TCP port 8080:
$ socat tcp-listen:8080,bind=127.0.0.1 stdout &
- Bind a process to UDP port 8080:
$ socat udp-listen:8080,bind=127.0.0.1 stdout &
- Bind a process to SCTP port 8080:
$ socat sctp-listen:8080,bind=127.0.0.1 stdout &
These examples will put your process into the background. Then, we can use the commands below to test terminating the processes.
Kill process based on the port number examples
- For processes listening on a TCP or UDP port, the
fuser
command along with the-k
(kill) option will terminate the related processes for you. Just specify the port type (TCP or UDP) and the port number in your command. For example, this would terminate processes utilizing TCP port 80.$ fuser -k 8080/tcp
- Or to kill a process on UDP port 8080 with
fuser
:$ fuser -k 8080/udp
Remember to use the
lsof
command afterwards to confirm that no process is using the port. - If you do not want to use
fuser
, it is possible to find the process IDs that are utilizing a port number via thelsof
command and then pass that data to thekill
command. For example, this will terminate all processes using TCP port 8080.$ lsof -i tcp:8080 | awk '/8080/{print $2}' | xargs kill
- To terminate a process using a different protocol such as SCTP, we can use the
ss
command and pipe the PID toxargs
andkill
command. For exampe, the following command would kill all processes using SCTP port 8080.$ ss -Slp | grep -Po ':8080\s.*pid=\K\d+(?=,)' | xargs kill
Closing Thoughts
In this tutorial, we saw how to kill a process based on the port number it’s using on a Linux system. The fuser
command is the main tool we would use for this job, but Linux is known for offering users more than one method to accomplish a task. As alternatives, the lsof
and ss
commands help us ascertain the information we need, and in conjuction with the kill
command can give the same effect as fuser
.