by Audrey M. Roy Greenfeld | Mon, May 5, 2025
How to find and kill an old process running on a particular port.
This is useful when you need to run something on a port and discover it's already in use. For example, if you're starting Uvicorn from a Jupyter notebook and get this error, and you don't want to just pick another port:
ERROR: [Errno 48] error while attempting to bind on address ('0.0.0.0', 8000): [errno 48] address already in use
Find the PID of whatever process is running on port 8000:
% lsof -i :8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Python 53995 arg 73u IPv4 0xfd5e93838a5d5d03 0t0 TCP *:irdmi (LISTEN)
Kill that process:
% kill -9 53995
Now when you run lsof again, the process is gone:
% lsof -i :8000