개발/SPRING

[SpringBoot] Port 8080 is already in use 문제 해결방법

hubaek 2024. 2. 2. 02:51

프로젝트를 스프링레거시로 한 경험 뿐이라, SpringBoot의 경험이 없어서 공부를 하고 있습니다.

처음이다보니 다양한 오류를 경험하는데 흔히 경험 할 것 같은 문제를 포스팅하려고 합니다.

 

Web server failed to start. Port 8080 was already in use. 라는 8080포트를 이미 사용중이라는 오류 입니다.

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. 라고 action을 알려줌 

 

발생원인

해당 문제가 일어난 이유는 테스트 프로젝트로 톰캣을 실행을 했다가, 그걸 안끄고 다른 프로젝트에서 실행을 했었고 인텔리제이를 껐는데도 계속 켜져 있었다 -> 흔히 자주 일어나는 문제라고 한다.

1. 흔히 로컬에서 8080포트를 쓸텐데 동일한 포트로 어플리케이션을 번갈아가며 실행 시킬경우

2. IDE상에서 프로세스를 종료 시켰으나, 실제 프로세스가 종료되지 않은 경우

 

해결방법!

로컬에서 쓰는 8080포트를 직접 찾아서 프로세스를 종료한다.

터미널에서 진행한다. (인텔리제이에서 바로 터미널 실행해도 됨)

 

8080포트를 찾는 명령어

lsof -n -i -P | grep 8080

8080포트를 사용중인 프로제스를 조회하는 명령어  - 우측상단에 보면 현재 서버가 실행중 

해당 사진에서 36018이라는 PID를 기억! - PID는 매번 달라집니다.

프로세스 종료 명령어

현재 8080포트를 사용중인 PID 숫자를 확인하고 

명령어 : kill -9 PID  - 현재 사진상으로 kill -9 36018  입력을 하면, 우측 상단에 실제로 종료까지 된다.

 

원래는 중복실행이 되었을때, 해당하는 문제해결방법인데 실제 작동을 보여드리기 위해 테스트는 종료가 되는 부분까지 사진으로 보여드렸습니다!