address already in use :::{port} - 포트 실행 중 에러가 생길 때

woojin·2021년 5월 3일
0

🤦‍♂️ 포트가 이미 사용 중?

리액트나 뷰 등 개발을 할 때면 VS CODE 터미널에서
yarn start 혹은 npm run start로 프로젝트를 실행시키는데 이때 로컬호스트의 포트를 받아와서 실행하게 된다.

그리고 Ctrl + C를 눌러서 해당 포트를 종료시키곤 하는데 이 때 종료가 정상적으로 안되어 재실행하거나 다른프로젝트를 실행하려고 하면

address already in use :::{port} 어쩌고~ 하면서 에러가 뜬다.

이러한 에러를 겪었었고 찾아보았던 해결 방법을 정리하려고 합니다.

1. 사용하려는 port의 process ID를 찾는다

우선 포트가 정말 실행중인지를 체크하면서 process ID를 얻기 위하여
터미널에서 다음 명령어를 입력해봅시다.

$ sudo lsof -i :{port}

# 여기 port에는 사용하려고 하는 포트를 입력하면 됩니다.

$ sudo lsof -i :8080

저는 8080번에서 이런 일이 자주 생겨 8080을 예시로 설명해볼게요.

저렇게 입력하면 패스워드 입력하라고 나오는데 컴퓨터 비밀번호 입력하면 됩니다.

COMMAND    PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node      2671   velog  964u  IPv4 0****************7  0t0  TCP ***.***.1.***:http-alt->***.***.1.***:***

그럼 터미널에 이렇게 나오는 걸 볼 수 있습니다.
node 서버에서 실행중이고 저기 두번째에 PID밑에 2671 써있는 게 보이시죠
저게 process ID입니다.

PID를 알아냈으면 이제 바로 종료시킵시다.

2. PID 종료시키기

그럼 이제 다시 터미널에서

$ sudo kill -9 {PID}

방금 찾아낸 PID를 죽입니다.... {PID}자리에 방금 찾은 2671을 입력하면..

$ sudo kill -9 2671

이제 포트가 종료됐으니 다시 체크해보고 싶으신 분은 lsof 명령어 다시 써보시면 아무것도 안나올 겁니다. 종료된 거에요.

그럼 끗.

profile
개발자를 위한 개발을 하고 싶은

0개의 댓글