배경 (8080포트를 사용하고 있는 Zookeeper 프로세스가 죽지 않아)
결론부터 말하자면 homebrew로 zookepper & kafka 다운 받지말고, 도커나 kafka 홈페이지에서 직접 다운받아서 사용하는 것을 추천한다.. homebrew 다운받아서 zookeeper 실행했더니 절대 죽지 않는 좀비 프로세스가 발생했다..
나만 이랬던 건지는 몰ㄹ..겠...
Springboot 프로젝트에서 Kafka를 사용하기 위해 homebrew를 활용해 zookeeper 다운받고 kafka를 다운받았었다.
이후 zookeeper,kafka 실행시키고, 스프링부트 서버 실행한 후, 서버 내렸다가 재실행 시키는 순간, 아래와 같은 로그가 나왔다.
lsof -i : 8080 명령어를 통해 어디서 8080포트가 쓰이고 있나 봤더니 (MacOS)
sudo lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 872 root 45u IPv6 0xf228382879240f9d 0t0 TCP *:http-alt (LISTEN)
뭐가 하나 있긴 있더라..
사실 이런 적은 많기 때문에 금방 해결 할 수 있을 것이라 생각했다.(그리고 하루종일 헤맸다)
문제 (8080 포트를 사용 중인 프로세스가 죽지 않아, 서버를 띄울 수 없음)
이런 건 kill -9 PID만 사용하면 프로세스를 죽일 수 있기 때문에 그동안 큰 문제는 안됐었다..
다만 이번 경우에는 사태가 심각했는데,
1. kill -9 PID를 해도 PID 번호만 계속 바뀔 뿐 프로세스가 사라지지 않는다는 점...
sudo kill -9 872
lsof -i : 8080
# 실행결과
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 17271 root 45u IPv6 0xf2283828757aa61d 0t0 TCP *:8080 (LISTEN)
2. yml 에서 포트번호를 바꿔서 서버를 띄워봐도 인텔리제이가 인식을 못하고 계속 8080 포트로 접근하는 점(이건 또 뭔,,,)
3. 맥북을 껐다 켜도 8080 포트를 사용하는 zookeeper 프로세스가 살아있다는 점...
4. 맥북을 안전모드로 실행시켜서 확인(그래도 살아있음)
할 수 있는건 다해봤는데 안됐음...
해결방법 (Zookeeper,kafka 삭제)
이래도 안되고 저래도 안되서..
Zookeeper,kafka 둘 다 삭제시켰다...
brew uninstall --force kafka
brew uninstall --force zookeeper