How to kill a process on a port on ubuntu
UbuntuPortKillUbuntu Problem Overview
I am trying to kill a process in the command line for a specific port in ubuntu.
If I run this command I get the port:
sudo lsof -t -i:9001
so...now I want to run:
sudo kill 'sudo lsof -t -i:9001'
I get this error message:
ERROR: garbage process ID "lsof -t -i:9001".
Usage:
kill pid ... Send SIGTERM to every process listed.
kill signal pid ... Send a signal to every process listed.
kill -s signal pid ... Send a signal to every process listed.
kill -l List all signal names.
kill -L List all signal names in a nice table.
kill -l signal Convert between signal numbers and names.
I tried sudo kill 'lsof -t -i:9001'
as well
Ubuntu Solutions
Solution 1 - Ubuntu
You want to use backtick, not regular tick:
sudo kill -9 `sudo lsof -t -i:9001`
If that doesn't work, you could also use $()
for command interpolation:
sudo kill -9 $(sudo lsof -t -i:9001)
Solution 2 - Ubuntu
Solution 3 - Ubuntu
FOR UBUNTU 1- Find what application/process is using the pro, type:
sudo netstat -lpn |grep :8080
and press Enter.
You will get an output similar to this one
tcp6 0 0 :::8080 :::* LISTEN 6782/java
2- I have got the process Id, which is 6782, now this is the process that is using port 8080.
3- Kill the process, type: kill -p 6782
kill -9 6782
Solution 4 - Ubuntu
The best way to kill a port in the Ubuntu terminal is with the fuser
command; e.g.:
fuser -k 9001/tcp
This sends SIGKILL
by default.
Solution 5 - Ubuntu
There are some process which does not shown using normal netstat command, so you have to check it using sudo
.
Do sudo netstat -lpn |grep :8080
. Process running by system does not show PID, to get PID of this process you will have to run it using sudo
And then killl the process using port 8080
. You may have to use sudo
here as well. So to kill this process use sudo kill -9 PID
Solution 6 - Ubuntu
To kill a process running on Port number 9001
sudo kill -9 $(sudo lsof -t -i:9001)
lsof - list of files(Also used for to list related processes)
-t - show only process ID
-i - show only internet connections related process
:9001 - show only processes in this port number
kill - command to kill the process
-9 - forcefully
sudo - command to ask admin privilege(user id and password).
for more you can visit my blog
Solution 7 - Ubuntu
Use https://github.com/abdennour/miscs.sh/blob/master/killport">killport</a> command :
sh killport 9001
To Download shell ,you can use wget
:
wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
Solution 8 - Ubuntu
To kill the process based on port first we have to find out the relevant pid for given port and kill using that pid,
In my case i wanted to get the pid(process id) of 3000 port:
netstat -ltnp | grep -w '3000'
then find pid which is listening to tcp
tcp6 0 0 :::3000 :::* LISTEN 29972/node
you will get pid 29972
To kill this pid use below command
kill -9 29972
pseudo code for kill process based on port
netstat -ltnp | grep -w 'PORT'
and
kill -9 PID
Solution 9 - Ubuntu
Use this:
sudo kill -9 $(lsof -t -i:9001)
Solution 10 - Ubuntu
sudo kill -9 $(sudo lsof -t -i:9001)
worked for me or
you can use
sudo kill -9 `sudo lsof -t -i:9001`
replace 9001 with port number you want.
Solution 11 - Ubuntu
Just enter the following command in the terminal
kill -9 $(lsof -t -i:3000)
Solution 12 - Ubuntu
Kill PORT:
sudo
is important to show process id.
$ sudo netstat -antlp | grep 45136
tcp 0 0 0.0.0.0:45136 0.0.0.0:* LISTEN **-**
$ kill -9 45136
Solution 13 - Ubuntu
Use the command
netstat -plten |grep java
used grep java as tomcat uses java as their processes.
It will show the list of processes with port number and process id
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
the number before /java is a process id. Now use kill command to kill the process
kill -9 16085
-9 implies the process will be killed forcefully.
Solution 14 - Ubuntu
If I was you,I would use
fuser -k -n tcp PORT
kill -9 PID
Solution 15 - Ubuntu
Try this:
lsof -i :port
or
sudo kill $(sudo lsof -t -i:8000)
or
kill -9 <pid>
or
sh killport 8000
Solution 16 - Ubuntu
It gives me an error OSError: [Errno 98] Address already in use
. using the following method solved my error in Ubuntu.(VERSION="18.04.4 LTS (Bionic Beaver)"
)
$ sudo netstat -lpn |grep :5000
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 25959/uwsgi
$ fuser -k -n tcp 5000
5000/tcp: 25959
Hope it will help someone!
Solution 17 - Ubuntu
sudo kill `sudo lsof -t -i:9001`
you don't have to add the -9
signal option
Solution 18 - Ubuntu
xargs
can be a very useful command.
You can pipe commands like this
lsof -t -i :9001 | xargs sudo kill
What it does:
it takes the output from the first command, in this case the process running on port, and will pass it to sudo kill
.
Solution 19 - Ubuntu
-
get PID of process running on port 3000:
lsof -i tcp:3000
-
kill th process
kill -9 process_id
Example:
lsof -i tcp:3000
(PID in output = 5805)
kill -9 5805
> use sudo
if required
Solution 20 - Ubuntu
you can use following command in terminal
fuser -k 3000/tcp
Solution 21 - Ubuntu
Its two steps process:
-
Know process id on port no. 8080 (can be any)
-
Kill process of that id 8689 (can be different)
fuser -n tcp 8080 #o/p 8080/tcp 8689 kill -9 8689
Solution 22 - Ubuntu
you can work this using node
npm install freethenport -g
then
node freethenport 9001
Solution 23 - Ubuntu
Displays active TCP connections, ports on which the computer is listening.
netstat -tupln
It will list you all the connection along pid. Find and copy the pid and run the following command. Make sure you replace the
kill -9 <copied pid>
> -9 use to forcefully kill the connection.
Solution 24 - Ubuntu
When using newer versions of Ubuntu you won't have netcat
anymore, instead you use ss
ss -lptpn | grep 9001
sudo kill <replace-with-process-id>