본문 바로가기

Spring

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

포트가 이미 실행 중일 때 스프링을 Run 하면 실행되는 에러이다.

Web server failed to start. Port 3000 was already in use.
Action:
Identify and stop the process that's listening on port 3000 or configure this application to listen on another port.
2019-11-06 22:00:06.094  INFO 8996 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

또는

Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.2.0.RELEASE:run (default-cli) on project babyfoodchef: Application finished with exit code: 1

이런 식으로 에러 메시지가 나오게 된다.

해결법

window

명령 프롬포트(CMD)에서 netstat -ano를 실행 하면

그림 처럼 현재 실행중인 포트 목록?이 나오게된다.

나는 스프링을 8080이 아닌 3000번 포트로 이용하고 있으므로 저 3000번 포트의 PID인 2668을 종료 시켜주면 된다.

taskkill /pid 2668 /f

mac

터미널에서 lsof -i tcp:8080을 실행하면 8080포트로 실행중인 프로세스가 아래와 같이 나온다.

8080포트로 실행중인 PID 번호와 sudo kill -9 {PID번호} 명령어로 해당 프로세스를 종료 시킬 수 있다.

위 이미지 같은 경우엔 sudo kill -9 2185 로 8080포트로 실행중인 프로세스를 종료시킬 수 있다.

'Spring' 카테고리의 다른 글

@Mock vs @MockBean  (0) 2020.08.14
MockMvc VS RestAssured  (0) 2020.08.14
Tacademy JPA 강의 정리  (1) 2020.07.01
용어 정리  (0) 2020.04.21
Mybatis, Invalid bound statement (not found) 에러  (0) 2019.11.05