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

건도리 ·2023년 7월 10일
0

Spring

목록 보기
7/12
post-thumbnail

개요

스프링으로 개발을 진행하다보면 필연적으로 다음과 같은 에러를 마주하게 됩니다. 저 또한 주기적으로 해당 에러를 마주치는데 이에 대한 해결 방법을 정리해보고자 합니다.

원인

원인으로는 크게 두 가지가 있습니다.

첫 번째로 다른 프로세스가 이미 동일한 포트 번호를 사용하고 있는 경우 웹 서버는 해당 포트를 사용할 수 없습니다. 이 경우에는 다른 포트를 시도하거나, 이미 실행중인 프로세스를 종료해야 합니다.

두 번째로 이전에 실행 중인 웹 서버 프로세스가 제대로 종료되지 않은 경우 발생합니다. 저 또한 다음과 같은 이유로 해당 오류를 자주 접했는데요, 이전에 실행된 웹 서버 프로세스가 제대로 종료되지 않은 상태일 경우 해당 프로세스가 계속해서 포트 번호를 점유하고 있을 수 있습니다. 이 또한 정상적으로 실행중인 프로세스를 종료하거나 시스템을 다시 시작하여 포트를 해제할 수 있습니다.

해결방법

우선 이미 실행 중인 포트를 강제 종료 해야 합니다. 해당 포트 번호를 사용하고 있는 프로세스 정보는 다음 명령어를 통해 불러옵니다.

lsof -i tcp:[Port #] 

제 경우에는 8080 포트가 충돌이 났으니, Port # 에 8080을 넣어 명령어를 실행해보았습니다. (대괄호는 제거하고 포트번호만 입력하시면 됩니다)

명령어를 입력하면 다음과 같은 정보가 도출되는데 이 중 PID 번호를 기억해야 합니다. PID 번호를 이용하여 다음 명령어를 입력합니다.

sudo kill -9 [PID #]

비밀번호를 입력하고나면 정상적으로 포트 충돌이 해결된 모습을 확인할 수 있습니다.

profile
배움이 즐거워요 ! 함께 그 즐거움을 나눴으면 좋겠습니다 :)

0개의 댓글