포트가 이미 실행 중일 때 스프링을 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 |