Intellij로 서버를 실행한 채로 오래 놔두다가 IDE를 종료하면, 백그라운드에서 여전히 포트번호가 선점되어 있는 경우가 있다.
개발자는 당연히 Intellij를 종료했으므로 실행된 서버도 종료되었을 것이라 믿고 동일한 포트번호의 애플리케이션을 실행할 수 있는데, 이 경우 아래와 같은 에러와 마주치게 된다.
org.springframework.boot.web.server.PortInUseException: Port 8080 is already in use
만약 동을 포트를 사용하는 다른 애플리케이션을 실행 중이지 않은 것 같은데 위와 같은 에러가 발생한다면, IDE에서는 종료되었으나 실제 프로세스는 실행 중이기 때문일 수 있다.
8080 포트로 실행 중인 프로세스를 조회해보자.
lsof -n -i -P | grep 8080
lsof
현재 실행 중인 프로세스 확인-n
호스트 네임 제거-i
IPv4, IPv6 선택-P
포트 이름 제거
아마 아래처럼 검색된 결과가 있을 것이다.
java 56204 gongchaewon 51u IPv6 0x9b75fccef79f8527 0t0 TCP *:8080 (LISTEN)
56204를 죽여야 한다.
kill
명령어로 프로세스를 종료한다.
kill -9 56204