본문 바로가기
SpringBoot

[에러 / Spring] Web server failed to start. Port 8080 was already in use.

by 네모세모동동 2024. 11. 18.

이클립스가 비정상적으로 종료되었고 스프링부트를 재시작하려는데 에러가 발생했다😫

Web server failed to start. Port 8080 was already in use.

포트가 이미 실행 중일 때 스프링을 실행하면 발생하는 에러라고 한다.

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

Action:

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

 

 

포트를 끊어주기만 하면 쉽게 해결!😗

 

윈도우와 맥에 따라 명령어가 다르다. (맥은 글 맨 밑으로 가면 바로 확인 가능!)

 

Window인 경우

명령 프롬프트(CMD)에서 netstat -ano를 실행한다.

netstat -ano

 

실행해보면 아래 사진과 같이 실행중인 포트들이 나온다.

 

8080 포트를 사용하려 했었기 때문에 8080 포트를 끊어줘야한다.

 

끊어줄 때는 taskkill 명령어를 사용한다.

끊어줄 때는 PID 값이 필요하다. 오른쪽에 각 포트에 해당하는 PID를 아래 실행 명령의  /pid /f 사이에 써주면 된다.

taskkill /pid 45456 /f

 

위 사진처럼 성공 메세지가 뜨면 된다!

다시 스프링부트를 실행해보니 잘 실행되었다😆

 

 

 

📍혹시나 잘못 끄는건 아닐까 걱정되는 마음에 무슨 프로그램이 실행되고 있는지 확인하고 싶으면 작업관리자에서 확인할 수 있다.

1.  왼쪽의 '자세히' 메뉴에서 확인하기

 

 

2. '프로세스' 메뉴에서 PID항목 추가하기

작업관리자를 열고 오른쪽 마우스를 클릭하면 생기는 목록에서 PID를 선택한다

 

 


Mac인 경우

터미널에서 lsof -i tcp:포트번호 를 실행시키면 해당 포트로 실행중인 프로세스가 나온다.

lsof -i tcp:포트번호

 

아래 명령어를 사용하여 포트를 끊어주면 된다.

sudo kill -9 {PID 번호}

 

출처 https://dundung.tistory.com/148

 

 


 

이미 사용중이라는 오류가 발생하는데 프롬프트(CMD)에는 해당 포트 번호가 없는 경우가 있었다🫨

 

다른 방법을 검색해봤고 작업관리자에서 강제종료하는 방법을 알게되어 이 또한 기록해두려한다!

 

작업관리자 실행 후 'Apache Commons Deamon Service Runner ' 프로그램을

[작업끝내기] 버튼을 눌러서 종료해주면 된다.

 

 

캡쳐해두지 않고 작업을 끝냈더니 저 프로그램이 뜨지 않는다...

나중에 다시 만나게된다면 그때 사진을 첨부해야겠다.

 

 

 


[출처]