Django: That port is already in use. What to do about port 8000
Django fails loudly instead of moving, which is the better behaviour. Finding the leftover runserver, the autoreloader's second process, and the Docker case.
September 14, 2026
Blog
RSSDjango fails loudly instead of moving, which is the better behaviour. Finding the leftover runserver, the autoreloader's second process, and the Docker case.
September 14, 2026
Express does not catch this for you. The fix, why nodemon makes it worse, and the few lines that turn a stack trace into a useful message.
September 14, 2026
3306 conflicts are almost always a second MySQL you forgot about. Which manager owns it, and why the socket error is a different problem entirely.
September 14, 2026
Next.js moves to 3001 rather than failing, which quietly breaks anything expecting a fixed URL. How to pin the port and clear whatever took 3000.
September 14, 2026
Postgres is usually started by a service manager, so killing the PID just brings it back. Homebrew, Docker and stale postmaster.pid files, and what each one needs.
September 14, 2026
Rails has its own version of this error that has nothing to do with the port being busy. Telling the two apart is the whole fix.
September 14, 2026
Create React App asks instead of failing or moving. Saying yes is usually the wrong answer, and here is what to do instead.
September 14, 2026
Could not create server TCP listening socket *:6379. Before killing anything, one command tells you whether a working Redis is already there.
September 14, 2026
Vite quietly picks the next free port instead of failing, which is helpful until it is not. How strictPort works and how to find what took 5173.
September 14, 2026
Orphaned node dev servers eating RAM and holding ports on macOS? See every Node process and kill the stuck ones, without taking out your editor's language servers.
July 20, 2026
Fan spinning and Mac sluggish because of Docker Desktop? Find out if it's Docker overall or one container, and what actually fixes the CPU spike.
July 15, 2026
Docker port conflicts on Mac don't show up in lsof the way you'd expect. Find the real container with docker ps, stop it the right way, and stop guessing.
July 15, 2026
Fix ngrok's ERR_NGROK_108 and ERR_NGROK_334 tunnel-already-running errors on Mac: find the orphaned process, kill it, and check what's actually tunneling.
July 15, 2026
Fix EADDRINUSE and "port already in use" errors on macOS: find the process with lsof, kill it the right way, and stop it from happening again.
July 15, 2026
The 65,536 ports are split into three ranges with different rules. Knowing where yours sits explains permission errors and mysterious conflicts.
September 14, 2026
The difference matters more than most tutorials suggest, especially when a port looks free in one tool and busy in another. A practical look, not a textbook one.
September 14, 2026
Ports are not physical, there are exactly 65,536 of them, and only one process can listen on each. Here is what that means day to day on a Mac.
September 14, 2026
EADDRINUSE is an operating system error code, not a Node one. Here is what it means, why it happens, and the TIME_WAIT case where lsof shows nothing at all.
September 14, 2026
localhost is a name that points at your own machine and never touches the network. Here is what that means for dev servers, Docker and why 0.0.0.0 is different.
September 14, 2026
Activity Monitor is already on your Mac and it is genuinely good at what it does. Ports are simply not one of those things, and here is why.
September 14, 2026
There are several good free menu bar port tools for macOS, some of them excellent. Here is what each one does well and where Bosun is actually different.
September 14, 2026
An honest comparison. lsof is free, already installed, and handles most port problems in one command. Here is exactly where it stops being enough.
September 14, 2026