listen EADDRINUSE: address already in use :::[port]

KoEunseo·2022년 8월 13일
0

fixErr

목록 보기
2/23

서버 공부를 할때마다 왜이렇게 장애가 많은걸까^^//
백엔드 안하기를 백번 잘했다고 새삼 생각함ㅋㅋㅋㅋㅋㅋㅋ
페어분과 express 과제를 하면서 진도를 혼자 못나갔는데, 자꾸 에러가 떴기 때문...
여러 문제가 있었는데 대표적으로 포트를 이미 쓰고있다는 에러였다!!
뭐 포트를 이미 쓴다길래 5000을 쓰다가 4999 이런식으로 바꿨는데 바꿔도 똑같았음.

listen EADDRINUSE: address already in use :::[port]

lsof -i :포트

CLI에 lsof -i :port번호 치면 사용중일 땐

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 1590 유저이름 21u IPv6 0x8846b3e7b7f275 0t0 TCP *:hbci (LISTEN)

이렇게 나오고, 포트를 사용중인 게 아니라면 아무것도 나오지 않는다.
나는 안나와서 다른 방법을 찾았는데,

lsof -i TCP:포트

이다. 지금은 또 위에 코드가 먹히는데... 어젠 왜안됐지(긁적);
여턴간 이렇게 치나 저렇게 치나 똑같이 나온다.

  • 어떤데는 위 코드 앞에 sudo를 같이 치라고 하는데, sudo는 관리자 신분으로 접근하라는거임.
    근데 sudo를 꼭 하지 않아도 됐다. 나는 비번을 쳐도 안돼서 sudo로 안함. 안해도 무방하다.

여기서 필요한 건 PID임.

PID 아이디로 해당 포트를 사용중인 작업을 kill한다.

kill -9 포트

이렇게 써주면 됨! 이제 서버를 사용할 수 있게 된다.


나는 이렇게 했는데 또 같은 문제가 발생했으니...^^

nodemon과 node가 둘다 동작한다는 것을 발견했다.

같은 포트로 두번 열고 또 한번만 닫으니까 당연히 안됐겠지...^^

어딘가 다운로드가 꼬인 것 같다 싶었음
node_modules를 지우고 다시 npm install을 했는데 그래도 뭔가 안됐다.

이럴땐 노드를 시작하는 키워드를 확인하자!!

node 파일이름
이런식으로 습관적으로 하다보니 노드몬으로 할때도 생각없이 똑같이 해버리는 우를 범하고 말았다...
아니 심지어 키워드는 저렇게 해놓지도 않았음;;

nodemon 폴더/파일이름
이렇게 해놓고

nodemon 파일이름
이렇게 해버린것!!!! 오마이갓;

그렇다고 키워드 자체를 nodemon 파일이름 으로 바꿔버리면 무한대로 파일을 실행하게된다....
와이라노;
그냥 주어진대로 nodemon 폴더/파일이름 를 사용해야겠다.

만일 이도저도 안된다면

폴더자체를 삭제하고 첨부터 시작하는 수밖에....

express도 생각보다 어려운데 다른문제가 생겨서 진도를 못나가서 너무 스트레스받았다...하
지금 또 복습하려고 서버 열려고 하니까 안되길래 또 같은 문제가 생길 확률이 너무나도 높아보여서 벨로그에 정리해봤다.

0개의 댓글