⌨️/Node.js

[Node.js] listen EADDRINUSE: address already in use 에러

S0 2024. 1. 25. 01:48

서버에 올린 후 수정 사항이 생겨서

ssh 터미널에서 변경사항 git pull 받은 후

다시 node app.js로 서버를 열려고 하는데

 

에러가 떴다

listen EADDRINUSE: address already in use :::3000

 

3000번 포트가 다른 프로세스에서 열려있어서 그런 것

(파일이랑 브라우저는 전부 닫은 상태)

 

먼저 어디서 열려있는지 확인 

sudo lsof -i 3000:
sudo lsof -i :3000
sudo lsof -i TCP:3000

쳐봤는데

아무 일도 안일어남ㅠㅠ

상위경로로 계속 나가서 찾아도 안된다

 

아무튼 저 명령어로 pid 값 찾아서 

kill -9 pid번호

치면 열려있던 포트가 강제종료된다고 한다 난 여기까지 못왔지만…

 

그렇게 한시간쯤 찾아다니다가 자려고 누웠는데

문득 ssh 터미널에서 pm2를 이용해 서버를 열어둔 것이 떠올랐다!!!

 

다시 ssh 터미널로 들어가서 pm2 log를 찍어보니 이게 원인이 맞는 것 같았다.

 

pm2 list

해당 명령어를 입력하면 pm2로 관리되는 서비스의 목록을 볼 수 있다 

여기서 id 0 확인 후

 

pm2 delete 0

을 실행하면

서버가 닫혔다!

 

서버를 닫고 프로젝트 폴더로 이동해서 git pull을 받으려고 하니 이미 최신 상태라고 한다.

git pull을 따로 받지 않아도 자동으로 관리가 되는 건가? 글만 올리고 바로 찾아봐야겠다.

문제는 해결됐지만 알아볼 게 여전히 많다🙄

 

pm2 start app.js

아무튼 그 뒤로 다시 pm2를 이용해 프로젝트 파일을 실행시켜주고 연결된 도메인 주소로 접속해서 변경사항이 잘 적용됐는지 확인 후 후련하게 나올 수 있었다.

 


 

알아내서 TIL 써야지

해결되면 정돈된 글로 다시 찾아오겠습니다,,,,,

성공^~^