간단하게 말하면, 해당 포트가 이미 사용 중이라는 뜻이다.
Node.js에서 해당 노드를 종료하지 않고 또 실행하는 경우에서 자주 발생하는 것 같다.
나 같은 경우는 nodemon모듈을 사용하면서 실시간 갱신하는 시점에서 발생했다.
Error: listen EADDRINUSE: address already in use :::3000
그래서 일단 강제로 해당 포트의 종료하는 법을 알아보자
netstat --help
또는 netstat /?
명령어를 통해 도움말을 확인할 수 있다.3000포트라고 가정하고 명령 프롬프트(cmd)에 아래와 같이 입력한다
netstat -ano | find "3000"
3000 포트에 대한 정보가 나오는데 맨 오른쪽에 있는 숫자가 PID번호이다.
해당 PID번호에 해당하는 포트를 종료시켜야 하니 잘 기억해두자.
나의 경우TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 9876
로 PID번호는 9876이다.
그 다음 PID번호에 해당되는 프로세스를 종료시킨다.
taskkill /pid 9876
을 입력하면 해당 포트가 종료된다. 끝!
혹여나 /f옵션으로 강제 종료가 필요한 경우
taskkill /f /pid 9876
이처럼 입력해주면 된다! (물론 pid번호는 찾아서 바꾸시길)
lsof --help
명령어를 통해 도움말을 확인할 수 있다.--help
를 입력하여 도움말 확인 가능3000 포트라고 가정하고 터미널에 아래와 같이 입력한다.
sudo lsof -i : 3000
3000 포트에 대한 정보를 확인한다. PID번호 기억하기!
그다음 아래와 같이 입력해서 PID번호에 해당되는 프로세스를 종료시킨다.
kill -9 9876
눈치 챗겠지만 -9의 경우 종료신호(KILLSIGN)이다!
참고자료 및 사이트 (감사합니다)
감사합니다. 도움 많이 됐어요!