728x90
무슨 일이 벌어지고 있나요?
Ctrl+C로 서버를 끄면, 사실 전부 꺼지지 않는다.
내가 Ctrl+C를 누름
→ Gradle(빌드 도구)은 꺼짐
→ Java 서버는 그대로 살아있음
Java 서버가 혼자 남아서 8080 포트를 계속 붙잡고 있기 때문에
다시 실행하면 "이미 쓰고 있어요!" 오류가 난다.

왜 이렇게 되나요?
Gradle은 Java 서버를 자기 손으로 직접 만들어서 실행시킨다.
근데 Ctrl+C를 누르면 Gradle 자기 자신만 종료하고,
자기가 만든 Java 서버한테는 "너도 중단해"라고 말을 안 한다.
이걸 전문 용어로 "자식 프로세스가 고아 상태로 남는다" 고 한다.
해결 방법
즉시 해결 — 포트 강제 해제
kill -9 $(lsof -ti :8080)
한 줄로 끝난다. PID 찾고 kill 따로 안 해도 된다.
근본 해결 — 실행 스크립트 만들기
run.sh 파일을 만들어 두면, 실행할 때마다 자동으로 정리해준다.
#!/bin/bash
kill -9 $(lsof -ti :8080) 2>/dev/null
./gradlew bootRun
# 최초 1회만 실행
chmod +x run.sh
이후부터는 ./run.sh 하나로 끝.
가장 편한 해결 — IntelliJ에서 실행
IDE의 ▶ 버튼을 누르면, IDE가 Java 서버까지 직접 관리하기 때문에
중단 버튼 누르면 깔끔하게 전부 꺼진다.
터미널에서 실행하는 방식의 한계를 아예 우회한다.
한 줄 요약
Ctrl+C는 Gradle만 끄고, Java 서버는 안 끈다.
run.sh스크립트 하나 만들어두면 번거로움이 사라진다.
반응형
'프로그래밍 언어 > JAVA(JSP, Spring)' 카테고리의 다른 글
| Spring Boot 빌드 도구 완전 정리 | Gradle vs Maven 차이점과 선택 기준 (0) | 2026.03.29 |
|---|---|
| JPA vs MyBatis 핵심 차이점, 사용 방식, 용도 완벽 정리 (0) | 2025.11.20 |
| [JSP] MYSQL 연동 (0) | 2023.08.12 |
| [Error/JAVA] Eclipse와 Github 연동 시, 연속 로그인 나올 때 (0) | 2023.03.08 |
| [ALL] Eclipse와 Github 연동하기 (0) | 2023.03.08 |
