How can I remove the current process/application which is already assigned to a port?
For example: localhost:8080
How can I remove the current process/application which is already assigned to a port?
For example: localhost:8080
Step 1:
Open up cmd.exe (note: you may need to run it as an administrator, but this isn't always necessary), then run the below command:
netstat -ano | findstr :<PORT>
(Replace <PORT>
with the port number you want, but keep the colon)
The area circled in red shows the PID (process identifier). Locate the PID of the process that's using the port you want.
Step 2:
Next, run the following command:
taskkill /PID <PID> /F
(No colon this time)
Lastly, you can check whether the operation succeeded or not by re-running the command in "Step 1". If it was successful you shouldn't see any more search results for that port number.
Step 1 (same is in accepted answer written by KavinduWije):
netstat -ano | findstr :yourPortNumber
Change in Step 2 to:
tskill typeyourPIDhere
Note: taskkill
is not working in some git bash terminal
I know that is really old question, but found pretty easy to remember, fast command to kill apps that are using port.
Requirements: [email protected]^ version
npx kill-port 8080
You can also read more about kill-port here: https://www.npmjs.com/package/kill-port
There are two ways to kill the processes
Option 01 - Simplest and easiest
Requirement : [email protected]^ version
Open the Command prompt as Administrator and give the following command with the port (Here the port is 8080)
npx kill-port 8080
Option 02 - Most commonly used
netstat -ano|findstr "PID :8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 18264
taskkill /PID 18264 /f
In Windows PowerShell version 1 or later to stop a process on port 3000 type:
Stop-Process (,(netstat -ano | findstr :3000).split() | foreach {$[$.length-1]}) -Force
As suggested by @morganpdx here`s a more PowerShell-ish, better version:
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
I was running zookeeper on Windows and wasn't able to stop ZooKeeper running at 2181 port using zookeeper-stop.sh, so tried this double slash "//" method to taskkill. It worked
1. netstat -ano | findstr :2181
TCP 0.0.0.0:2181 0.0.0.0:0 LISTENING 8876
TCP [::]:2181 [::]:0 LISTENING 8876
2.taskkill //PID 8876 //F
SUCCESS: The process with PID 8876 has been terminated.
If you're using Windows Terminal then the killing process might be little less tedious.
I've been using windows terminal and kill PID
works fine for me to kill processes on the port as the new Windows Terminal supports certain bash commands. For example: kill 13300
So, the complete process will look like this-
netstat -ano | findstr :PORT
kill PID
For Example:
PS C:\Users\username> netstat -ano | findstr :4445
TCP 0.0.0.0:4445 0.0.0.0:0 LISTENING 7368
TCP [::]:4445 [::]:0 LISTENING 7368
PS C:\Users\username> kill 7368
PS C:\Users\username> netstat -ano | findstr :4445
PS C:\Users\username>
See when I typed the first command to list processes on the port it returned empty. That means all processes are killed now.
Update: kill
is an alias for Stop-Process. Thanks, @FSCKur for letting us know.
Run cmd as administrator. Then type this code in there.
netstat -ano | findstr :<8080>
Then you can see the PID run on your port. Then copy that PID number. ( PID is a unique number that helps identify a hardware product or a registered software product.) And type below code line and press enter.
taskkill /PID <Enter the copied PID Number> /F
If you fall into this issue much often like me, make an .bat file and run it to end process.
set /P port="Enter port : "
echo showing process running with port %port%
netstat -ano|findstr "PID :%port%"
set /P pid="Enter PID to kill : "
taskkill /pid %pid% /f
set /P exit="Press any key to exit..."
Run this file by double clicking and
Done
Set to path environment so that you can access this file from anywhere.
Most probably you will know how to add an new path to env. But here's how if you don't
Search ENV on start menu
Select Environment Variables
Select 'path' and click Edit button
Click 'New' add the path where .bat file is stored. Since I saved it on '../Documents/bats' folder I am adding this path. Your path will depend on where you save this file.
In case you want to do it using Python: check Is it possible in python to kill process that is listening on specific port, for example 8080?
The answer from Smunk works nicely. I repeat his code here:
from psutil import process_iter
from signal import SIGTERM # or SIGKILL
for proc in process_iter():
for conns in proc.connections(kind='inet'):
if conns.laddr.port == 8080:
proc.send_signal(SIGTERM) # or SIGKILL
continue
One line solution using GitBash:
tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`
Replace 8080 with the port your server is listening to.
If you need to use it often, try adding to your ~/.bashrc
the function:
function killport() {
tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}
and simply run
killport 8080