Sometimes when attempting to run a NodeJS server locally, you may see an error with:
Error: listen EADDRINUSE: address already i use 127.0.0.1:4567
To determine what's listening on this port (and potentially stop it), you can use a combination of the
lsof -P -i :<PORT> replacing
<PORT> with the port you want to check.
We use the
lsof since we likely don't need the mapping for the port to a name in the network files1.
lsof and run
ps <PID> to find what's running on this port. If it's okay to kill it, run
kill <PID> and try to re-run your command again.
lsof -P, it ignores the host machines conversion of port numbers to port names for network files. For example, if we ran
NAME column would contain services that run on those ports, such as port 4567 for
bcm-reporting or 4568 for
tram. If you're interested in seeing what service MacOS expects to be serving on a specific port, you can run the following command and replace
4567 with the port you're curious about:
cat /etc/services | grep " 4567/tcp". ↩