Find (and kill) process locking port 3000 on Mac
How do I find (and kill) processes that listen to/use my tcp ports? I'm on mac os x.
Sometimes, after a crash or some bug, my rails app is locking port 3000. I can't find it using ps -ef...
Address already in use - bind(2) (Errno::EADDRINUSE)
To complete some of the answers below: After executing the kill commands, deleting the pid file might be necessary
You can try
netstat -vanp tcp | grep 3000
For macOS El Capitan and newer (or if your netstat doesn't support
sudo lsof -i tcp:3000
For Centos 7 use
netstat -vanp --tcp | grep 3000
sudo lsof -i :3000
kill -9 <PID>
Read more... Read less...
Nothing above worked for me. Anyone else with my experience could try the following (worked for me):
lsof -i :3000 (where 3000 is your current port in use)
then check status of the reported PID :
ps ax | grep <PID>
finally, "begone with it":
kill -QUIT <PID>
A one-liner to extract the PID of the process using port 3000 and kill it.
lsof -ti:3000 | xargs kill
The -t flag removes everything but the PID from the lsof output, making it easy to kill it.
For single port:
kill $(lsof -ti:3000) #3000 is the port to be freed
Kill multiple ports with single line command:
kill $(lsof -ti:3000,3001) #here multiple ports 3000 and 3001 are the ports to be freed
82500 (Process ID/PID)
kill $(lsof -ti:3001,3000)
Terminates both 82499 and 82500 processes in a single command.
For using this in
"start": "kill $(lsof -ti:3000,3001) && npm start"
You can use
That is "List Open Files". This gives you a list of the processes and which files and ports they use.