이클립스가 비정상적으로 종료되었고 스프링부트를 재시작하려는데 에러가 발생했다😫
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 번호}

이미 사용중이라는 오류가 발생하는데 프롬프트(CMD)에는 해당 포트 번호가 없는 경우가 있었다🫨
다른 방법을 검색해봤고 작업관리자에서 강제종료하는 방법을 알게되어 이 또한 기록해두려한다!
작업관리자 실행 후 'Apache Commons Deamon Service Runner ' 프로그램을
[작업끝내기] 버튼을 눌러서 종료해주면 된다.
캡쳐해두지 않고 작업을 끝냈더니 저 프로그램이 뜨지 않는다...
나중에 다시 만나게된다면 그때 사진을 첨부해야겠다.
[출처]
'SpringBoot' 카테고리의 다른 글
| [에러 / SpringBoot] SpringBoot 3.0이상 javax.servlet.jsp.tagext.TagLibraryValidator 오류 (0) | 2024.06.19 |
|---|