반응형
스프링부트 어플리케이션을 시작하려고 했더니 Port 8080 was already in use 에러가 나면서 시작이 안되는 경우가 발생했습니다.
{"timestamp":"2023-04-03 14:30:01.575","@version":"1","message":"\n\n***************************\nAPPLICATION FAILED TO START\n***************************\n\nDescription:\n\nWeb server failed to start. Port 8080 was already in use.\n\nAction:\n\nIdentify and stop the process that's listening on port 8080 or configure this application to listen on another port.\n","logger_name":"org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter","thread":"restartedMain","level":"ERROR","level_value":40000,"caller_class_name":"org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter","caller_method_name":"report","caller_file_name":"LoggingFailureAnalysisReporter.java","caller_line_number":40}
에러 원인
이미 8080 포트로 다른 어플리케이션이 띄워져 있는 경우에 발생하는 에러입니다. 동일한 포트로 두 개 이상의 어플리케이션을 시작할 수 없기 때문에 새로운 어플리케이션을 띄우기 위해서는 기존에 8080 포트로 띄워져있던 어플리케이션을 강제 종료해야 합니다.
8080 포트로 띄워져있는 어플리케이션 찾기
command 창을 열어 아래 코맨드를 입력합니다. 8080 포트가 어떤 프로세스로 실행되고 있는지 확인합니다.
lsof -i :포트번호
// 8080 포트
lsof -i :8080
Process 확인
process id 74814 로 실행이 되고 있는 것을 확인했습니다.
PID
74814
8080 포트 죽이기
PID 74814 를 kill 합니다.
kill -9 PID
// PID 74814
kill -9 74814
Alias 등록해서 한 번에 하기
lsof 로 PID 를 파악하고 kill 코맨드를 다시 적는 과정이 귀찮다면 alias 로 등록해서 한 번에 처리하게 할 수도 있습니다.
// kill the process of 8080 port in one line
$ kill -9 $(lsof -i :8080)
// alias 확인
$ alias
// alias 등록
$ alias kill8080='kill -9 $(lsof -i :8080)'
// 등록한 alias 실행
$ kill8080
반응형
'에러 핸들링' 카테고리의 다른 글
Unable to obtain ZonedDateTime from TemporalAccessor (0) | 2024.04.05 |
---|---|
ssh: connect to host github.com port 22: Operation timed out (0) | 2023.05.04 |
Config data resource ... via location ... does not exist (0) | 2023.03.08 |
UUID 로 설계한 댓가 (0) | 2023.02.23 |
ArithmeticException 해결하기 (0) | 2023.02.12 |
댓글