Reputation: 78254
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
Upvotes: 906
Views: 2085735
Reputation: 150
On my ubuntu-22.04
machine, this worked to kill port 8000:
fuser -k 8000/tcp
Upvotes: 6
Reputation: 27
sudo netstat -lpn |grep :8080
then get the PID of this process
kill -9 <the PID>
Upvotes: 3
Reputation: 51
Just add an alias to your .bashrc
/ .zshrc
:
alias kp='kill_process_by_port() { sudo kill -9 $(sudo lsof -t -i:"$1"); }; kill_process_by_port "$@"'
Upvotes: 5
Reputation: 552
Lets consider If you want to kill a port 3000.
Step 1: Run this command, which will give u its PID.
sudo lsof -t -i:3000
This returned me PID as 291141
Step 2: Run this command to kill the port using PID.
sudo kill -9 291141
Boom!!! Port killed
Upvotes: 22
Reputation: 496
killport <port>
Add this code in your CLI and use this alias.
killport () {
PID=$(sudo lsof -t -i:$1)
sudo kill -9 ${PID}
}
Upvotes: 23
Reputation: 11
You can also use xargs. Just run the following,
sudo lsof -t -i:443 | xargs sudo kill -9
Upvotes: 1
Reputation: 32484
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)
Upvotes: 1838
Reputation: 1952
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.
Upvotes: 14
Reputation: 945
Just enter the following command in the terminal
kill -9 $(lsof -t -i:3000)
Upvotes: 11
Reputation: 1640
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.
Upvotes: 125
Reputation: 89
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
Upvotes: 2
Reputation: 6167
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
Upvotes: 166
Reputation: 1968
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>
Upvotes: 2
Reputation: 170
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
.
Upvotes: 2
Reputation: 1994
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!
Upvotes: 3
Reputation: 561
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
Upvotes: 15
Reputation: 3350
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
Upvotes: 40
Reputation: 3295
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 with actual id in the following command.
kill -9 <copied pid>
-9 use to forcefully kill the connection.
Upvotes: 1
Reputation: 2154
you can work this using node
npm install freethenport -g
then
node freethenport 9001
Upvotes: 1
Reputation: 368
Its two steps process:
Kill process of that id 8689 (can be different)
fuser -n tcp 8080
#o/p 8080/tcp 8689
kill -9 8689
Upvotes: 1
Reputation: 2257
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.
Upvotes: 5
Reputation: 2444
Try this:
lsof -i :port
or
sudo kill $(sudo lsof -t -i:8000)
or
kill -9 <pid>
or
sh killport 8000
Upvotes: 4
Reputation: 563
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
Upvotes: 5
Reputation: 93203
Use killport command :
sh killport 9001
To Download shell ,you can use wget
:
wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
Upvotes: 24
Reputation: 103
sudo kill `sudo lsof -t -i:9001`
you don't have to add the -9
signal option
Upvotes: 3
Reputation: 957
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
Upvotes: 37