NodeJS address already in use

SYhwang·2023년 1월 23일

문제

Node js 를 이용해 api 서버를 실행할 때 Error: listen EADDRINUSE: address already in use 127.0.0.1:8000에러가 발생했다.

해결

해당 서버 포트 주소가 이미 사용중이라는 의미이므로, 터미널에서 현재 실행중인 프로세스를 확인하고 수동으로 종료해 준다.

  • lsof : 활성화된 프로세스 리스트를 보여줌
  • lsof -i : 특정 포트를 사용중인 프로세스만 보여줌
lsof -i TCP:8000 

를 입력해 포트 8000을 사용중인 프로세스가 있는지 확인했다.

아까 분명 killall node로 전부 종료했는데… 뭔가 잘못 됐는지 서버가 살아 있었다. kill 명령어와 찾은 프로세스의 PID를(여기서는 60948) 사용해 프로세스를 강제로 종료시켜 주자.

kill -15 60948
kill -9 60948
  • kill 뒤의 -15는 정상 종료, -9는 강제 종료를 의미한다.
  • -15로 정상 종료가 되지 않는다면 -9를 이용해 강제로 종료시켜 준다.

프로세스를 종료 시키고 다시 lsof 로 확인하니 더 이상 프로세스가 없다. 서버를 다시 실행시켜 보니 문제없이 동작한다.

0개의 댓글